Java lang verifyerror class android

java.lang.VerifyError: Rejecting class that attempts to sub-class erroneous class

While applying proguard to application m getting following verify error, I have seen other variants of verify errors but the following seems bit different, Proguard version: 5.3.3, Following MainApplication class extends android.app.Application and crash occurs at super.onCreate(); of onCreate() method

and in my proguard m having

,also I have mentioned

With analyze apk I can see following is not obfuscated without proguard

but same was obfuscated once I apply proguard,

correct me if m wrong, with following

it must not obfuscate application classes, why does above happen.

2 Answers 2

I had the exactly same error after resolving a lot of conflicts and rebases. I just cleaned the project and rebuilt it. It was working again like a charm.

When looking at the ContextWrapper . it is being stated, that:

Known direct subclasses

Application, BackupAgent, ContextThemeWrapper, IsolatedContext, MutableContextWrapper, RenamingDelegatingContext, Service

. of which not all are declared in your ProGuard -keep configuration.

you would need to add a rule alike the one below, which is a different approach, than adding all the individual sub-classes explicitly by their name. the public keyword is rather optional there, because those private / protected methods do not really need to be obfuscated, simply because the SDK sources package is publicly available for download. adding the -verbose switch into the configuration always makes ProGuard complain about «what to do», always with a hyperlink to the user manual.

Источник

java.lang.VerifyError: Verifier rejected class #607

Comments

h-amg commented Jul 12, 2019

The error occurs when I attempt to retrieve data from firestore while writing data works totally fine.

Exception message:

Caused by: java.lang.VerifyError: Verifier rejected class com.google.firestore.v1.WriteResponse due to bad method java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object) (declaration of ‘com.google.firestore.v1.WriteResponse’ appears in /data/app/com.app.android.name-1/split_lib_dependencies_apk.apk:classes2.dex)

The code runs normally anywhere but inside firestore onComplete callback method:

Читайте также:  Андроид как изменить имя файла

DebugLogs:

07-11 08:02:11.603 27666-27666/com.app.android.name W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
07-11 08:02:11.613 27666-27666/com.app.android.name D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 72 — 0, 0) vi=Rect(0, 72 — 0, 0) or=1
07-11 08:02:11.653 27666-28056/com.app.android.name I/DynamiteModule: Considering local module providerinstaller:0 and remote module providerinstaller:0
07-11 08:02:11.653 27666-28056/com.app.android.name W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
07-11 08:02:11.653 27666-28056/com.app.android.name W/ResourcesManager: getTopLevelResources: /data/app/com.google.android.gms-1/base.apk / 1.0 running in com.app.android.name rsrc of package null
07-11 08:02:11.683 27666-27666/com.app.android.name I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@ff29e8d time:147037202
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: Verification error in void com.google.firestore.v1.WriteResponse.mergeCommitTime(com.google.protobuf.Timestamp)
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: void com.google.firestore.v1.WriteResponse.mergeCommitTime(com.google.protobuf.Timestamp): [0x10] couldn’t find method com.google.protobuf.Timestamp$Builder.mergeFrom (Lcom/google/protobuf/GeneratedMessageLite;)Lcom/google/protobuf/GeneratedMessageLite$Builder;
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: void com.google.firestore.v1.WriteResponse.mergeCommitTime(com.google.protobuf.Timestamp) failed to verify: void com.google.firestore.v1.WriteResponse.mergeCommitTime(com.google.protobuf.Timestamp): [0x10] register v3 has type Precise Reference: com.google.protobuf.Timestamp but expected Reference: com.google.protobuf.GeneratedMessageLite
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: Verification error in java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object)
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object): [0x5C] couldn’t find method com.google.protobuf.Timestamp.toBuilder ()Lcom/google/protobuf/GeneratedMessageLite$Builder;
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object): [0x73] couldn’t find method com.google.protobuf.Timestamp$Builder.mergeFrom (Lcom/google/protobuf/GeneratedMessageLite;)Lcom/google/protobuf/GeneratedMessageLite$Builder;
07-11 08:02:11.723 27666-29453/com.app.android.name I/art: java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object) failed to verify: java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object): [0x73] register v5 has type Precise Reference: com.google.protobuf.Timestamp but expected Reference: com.google.protobuf.GeneratedMessageLite
07-11 08:02:11.723 27666-29453/com.app.android.name W/art: Verification failed on class com.google.firestore.v1.WriteResponse in /data/app/com.app.android.name-1/split_lib_dependencies_apk.apk because: Verifier rejected class com.google.firestore.v1.WriteResponse due to bad method java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object)
07-11 08:02:11.733 27666-27666/com.app.android.name D/AndroidRuntime: Shutting down VM
07-11 08:02:11.733 27666-27666/com.app.android.name E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.android.name, PID: 27666
java.lang.RuntimeException: Internal error in Firestore (20.1.0).
at com.google.firebase.firestore.util.AsyncQueue.lambda$panic$5(com.google.firebase:firebase-firestore@@20.1.0:379)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$5.run(com.google.firebase:firebase-firestore@@20.1.0)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.VerifyError: Verifier rejected class com.google.firestore.v1.WriteResponse due to bad method java.lang.Object com.google.firestore.v1.WriteResponse.dynamicMethod(com.google.protobuf.GeneratedMessageLite$MethodToInvoke, java.lang.Object, java.lang.Object) (declaration of ‘com.google.firestore.v1.WriteResponse’ appears in /data/app/com.app.android.name-1/split_lib_dependencies_apk.apk)
at com.google.firestore.v1.WriteResponse.getDefaultInstance(com.google.firebase:firebase-firestore@@20.1.0:1012)
at com.google.firestore.v1.FirestoreGrpc.getWriteMethod(com.google.firebase:firebase-firestore@@20.1.0:379)
at com.google.firebase.firestore.remote.WriteStream.(com.google.firebase:firebase-firestore@@20.1.0:74)
at com.google.firebase.firestore.remote.Datastore.createWriteStream(com.google.firebase:firebase-firestore@@20.1.0:104)
at com.google.firebase.firestore.remote.RemoteStore.(com.google.firebase:firebase-firestore@@20.1.0:186)
at com.google.firebase.firestore.core.FirestoreClient.initialize(com.google.firebase:firebase-firestore@@20.1.0:263)
at com.google.firebase.firestore.core.FirestoreClient.lambda$new$2(com.google.firebase:firebase-firestore@@20.1.0:117)
at com.google.firebase.firestore.core.FirestoreClient$$Lambda$2.run(com.google.firebase:firebase-firestore@@20.1.0)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$4(com.google.firebase:firebase-firestore@@20.1.0:311)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$4.call(com.google.firebase:firebase-firestore@@20.1.0)
at com.google.firebase.firestore.util.AsyncQueue.lambda$enqueue$3(com.google.firebase:firebase-firestore@@20.1.0:287)
at com.google.firebase.firestore.util.AsyncQueue$$Lambda$3.run(com.google.firebase:firebase-firestore@@20.1.0)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at com.google.firebase.firestore.util.AsyncQueue$DelayedStartFactory.run(com.google.firebase:firebase-firestore@@20.1.0:205)
at java.lang.Thread.run(Thread.java:818)
07-11 08:02:11.863 27666-27685/com.app.android.name W/art: Suspending all threads took: 62.326ms
07-11 08:02:11.893 27666-27685/com.app.android.name I/art: Background sticky concurrent mark sweep GC freed 78605(5MB) AllocSpace objects, 48(2MB) LOS objects, 18% free, 28MB/35MB, paused 63.394ms total 143.944ms
07-11 08:02:11.963 27666-28056/com.app.android.name V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto’s 284 native methods.
07-11 08:02:12.073 27666-28056/com.app.android.name I/art: Rejecting re-init on previously-failed class java.lang.Class
07-11 08:02:12.083 27666-28056/com.app.android.name I/art: Rejecting re-init on previously-failed class java.lang.Class
07-11 08:02:12.083 27666-28056/com.app.android.name I/art: Rejecting re-init on previously-failed class java.lang.Class
07-11 08:02:12.083 27666-28056/com.app.android.name I/art: Rejecting re-init on previously-failed class java.lang.Class
07-11 08:02:12.133 27666-28056/com.app.android.name I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL

Build.gradle:

Читайте также:  Обновление прошивки андроид это что

Note:
I had duplicate classes issue between firebase and dialogflow earlier hence the excluded classes below:

The text was updated successfully, but these errors were encountered:

Источник

java.lang.VerifyError: Verifier rejected class. Code working fine in debug mode, but not throwing this error in release mode

Please help on this error.Below is error logcat:

4 Answers 4

Faced the same issue, I was using

I degraded the corountine to

It seems version 1.3.9 has some bugs according to kotlin documentation

If it happend to coroutines on Android, revert coroutines lib to 1.3.6 works for me. It seems that there is VerifyError bug in android coroutines lib version 1.3.7-1.3.8, and fixed after 1.4.0.

Downgrading dependencies did not work for me.

Remove @JvmStatic

If you create a suspend function be sure that you are not also using the @JvmStatic annotation for this method. Doing so will definitely throw this error.

Resolved. This was an unnecessary issue thrown after the use of Proguard.

Added -dontwarn for that class in the Proguard rules. The release is working perfectly fine.

Not the answer you’re looking for? Browse other questions tagged java android proguard jwi or ask your own question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.12.3.40888

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Читайте также:  Живые обои для андроид как погода

java.lang.VerifyError: Verifier rejected class on Lollipop when using release APK

I get this error when I install my release APK on a 5.x device. The error does not occur when I push the same code from Android Studio, or if I run it on a 4.x device.

I inject my Toolbar and a custom NavigationDrawer in the class.

Is there something that would be different with the Butterknife codegen when using gradle assembleRelease ? I am not using ProGuard at all.

Here are my other Android build settings:

Logcat

11 Answers 11

Cleaning out the build folder resolved the problem. Not sure why ART had an issue but Dalvik did not.

Running a gradle clean task was not clearing out my build folder all the way. I had to do it manually, but clean may work for some people.

In my case, the cause was slightly different.

Apparently, putting a synchronized statement inside a try/catch block causes the VerifyError , as reported here on SO and on the official bug tracker.

In my case the method that the error message said was ‘bad’, had some unknown faults. Changing from a Kotlin lambda to a regular loop solved my issue.

Before (With Error):

My app was working on most platforms but crashing immediately on Android 5.1. I started to suspect the new D8 dex compiler after reading Google info on how great it is. Disabling D8, so it uses the original DX compiler, is the only thing that worked for me. Project clean/invalidate caches didn’t fix it. I had some synchronized blocks, but removing them didn’t fix it. Turning off instant run didn’t fix it. Disabling proguard didn’t fix it.

Here is how you disable D8:
-Create a file called gradle.properties in the root of your project, if it doesn’t exist
-In it put this line: android.enableD8=false

You’ll get deprecated warnings. Hopefully Google actually fixes D8 before they fully remove the deprecated DX. I don’t know what in my code triggers it. I’m using Android Studio 3.2.1 with gradle version 4.6. Edit: I’ve reported this bug and Google developers are actively investigating

Источник

Оцените статью