Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VerifyError on Observable.zipArray #6656

Closed
galcyurio opened this issue Sep 30, 2019 · 4 comments
Closed

VerifyError on Observable.zipArray #6656

galcyurio opened this issue Sep 30, 2019 · 4 comments

Comments

@galcyurio
Copy link

Stacktrace

Fatal Exception: java.lang.VerifyError: Rejecting class e.b.x0.e.e.l4 because it failed compile-time verification (declaration of 'e.b.x0.e.e.l4' appears in /data/user/0/com.my.company/app_dex/classes3.zip)
       at io.reactivex.Observable.zipArray + 4803(Observable.java:4803)
       at io.reactivex.Observable.zip + 4292(Observable.java:4292)
       at io.reactivex.rxkotlin.Observables.zip + 130(Observables.java:130)
       at com.my.company.MyActivity.subscribeIsValid + 119(MyActivity.java:119)
       at com.my.company.MyActivity.onCreate + 71(MyActivity.java:71)
       at android.app.Activity.performCreate + 6267(Activity.java:6267)
       at android.app.Instrumentation.callActivityOnCreate + 1107(Instrumentation.java:1107)
       at android.app.ActivityThread.performLaunchActivity + 2372(ActivityThread.java:2372)
       at android.app.ActivityThread.handleLaunchActivity + 2479(ActivityThread.java:2479)
       at android.app.ActivityThread.-wrap11(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage + 1347(ActivityThread.java:1347)
       at android.os.Handler.dispatchMessage + 102(Handler.java:102)
       at android.os.Looper.loop + 148(Looper.java:148)
       at android.app.ActivityThread.main + 5420(ActivityThread.java:5420)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 741(ZygoteInit.java:741)
       at com.android.internal.os.ZygoteInit.main + 631(ZygoteInit.java:631)

Proguard mapping

io.reactivex.internal.operators.observable.ObservableZip -> e.b.x0.e.e.l4:

Environment

  • RxJava2: 2.2.0
  • RxKotlin: 2.3.0
  • RxAndroid: 2.1.0
  • compileSdkVersion: 28
  • targetSdkVersion: 28
  • android gradle plugin: 3.5.0
  • kotlin 1.3.50

Devices (error occurred)

  • samsung SM-N980S (Android 6.0.1)
  • oppo r7s (Android 5.1.1)

Details

I got this error report from Crashlytics. And I failed reproduce this error.

This error did not occur in previous releases. But after upgrading targetSdkVersion(26 -> 28), android gradle plugin(3.3.2 -> 3.5.0), and kotlin version(1.3.21 -> 1.3.50), this error occurred.
The versions of rx-related libraries have not been upgraded.

@akarnokd
Copy link
Member

akarnokd commented Sep 30, 2019

This is most likely a bug in your build environment/device and we can't do anything about it.

@galcyurio
Copy link
Author

Thanks for answer @akarnokd. But this doesn't emit an error through onError, nor is it caught by RxJavaPlugins.setErrorHandler {...}. Is it also intended?

@akarnokd
Copy link
Member

You are getting this error as a result of the VM trying to load the class file on the main thread and not part of a running RxJava sequence.

@leewp
Copy link

leewp commented Sep 30, 2020

Thanks for answer @akarnokd. But this doesn't emit an error through onError,

when error happend, will call Exceptions.throwIfFatal(t); VerifyError extend LinkageError, LinkageError will be throw

/**
* Throws a particular {@code Throwable} only if it belongs to a set of "fatal" error varieties. These
* varieties are as follows:
*


    *
  • {@code VirtualMachineError}

  • *
  • {@code ThreadDeath}

  • *
  • {@code LinkageError}

  • *

* This can be useful if you are writing an operator that calls user-supplied code, and you want to
* notify subscribers of errors encountered in that code by calling their {@code onError} methods, but only
* if the errors are not so catastrophic that such a call would be futile, in which case you simply want to
* rethrow the error.
*
* @param t
* the {@code Throwable} to test and perhaps throw
* @see RxJava: StackOverflowError is swallowed (Issue #748)
*/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants