xamarin / GooglePlayServicesComponents

Other
315 stars 148 forks source link

Java.Lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/vision/zzad; #215

Closed KthProg closed 5 years ago

KthProg commented 5 years ago

Operating System & Version (eg: Mac OSX 10.11):

Windows 10

Google Play Services Version (eg: 8.4.0):

71.1601.0-preview5

Describe your Issue:

Wen I try to access the on device text recognizer via FirebaseVision.Instance.OnDeviceTextRecognizer an exception is thrown.

Steps to Reproduce (with link to sample solution if possible):

Try to access the on device text recognizer via FirebaseVision.Instance.OnDeviceTextRecognizer.

Include any relevant Exception Stack traces, build logs, adb logs:

05-23 12:46:39.604 I/art     (14066): Starting a blocking GC Explicit
05-23 12:46:39.642 I/art     (14066): Explicit concurrent mark sweep GC freed 7192(281KB) AllocSpace objects, 1(20KB) LOS objects, 54% free, 6MB/14MB, paused 528us total 38.103ms
05-23 12:46:39.928 I/art     (14066): Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.vision.zzad>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/vision/zzl;
05-23 12:46:39.928 I/art     (14066):   at com.google.android.gms.vision.text.TextRecognizer com.google.android.gms.vision.text.TextRecognizer$Builder.build() ((null):-1)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zziz.zzfm() ((null):7)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Void com.google.android.gms.internal.firebase_ml.zzhr.zzfp() ((null):7)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Object com.google.android.gms.internal.firebase_ml.zzhr.call() ((null):23)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zzhg.zza(java.util.concurrent.Callable, com.google.android.gms.tasks.TaskCompletionSource) ((null):29)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zzhh.run() ((null):2)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Looper.loop() (Looper.java:154)
05-23 12:46:39.928 I/art     (14066):   at void android.os.HandlerThread.run() (HandlerThread.java:61)
05-23 12:46:39.928 I/art     (14066): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.vision.zzl" on path: DexPathList[[zip file "/data/app/com.lci1.one.v3-1/base.apk"],nativeLibraryDirectories=[/data/app/com.lci1.one.v3-1/lib/arm, /data/app/com.lci1.one.v3-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
05-23 12:46:39.928 I/art     (14066):   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
05-23 12:46:39.928 I/art     (14066):   at com.google.android.gms.vision.text.TextRecognizer com.google.android.gms.vision.text.TextRecognizer$Builder.build() ((null):-1)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zziz.zzfm() ((null):7)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Void com.google.android.gms.internal.firebase_ml.zzhr.zzfp() ((null):7)
05-23 12:46:39.928 I/art     (14066):   at java.lang.Object com.google.android.gms.internal.firebase_ml.zzhr.call() ((null):23)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zzhg.zza(java.util.concurrent.Callable, com.google.android.gms.tasks.TaskCompletionSource) ((null):29)
05-23 12:46:39.928 I/art     (14066):   at void com.google.android.gms.internal.firebase_ml.zzhh.run() ((null):2)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
05-23 12:46:39.928 I/art     (14066):   at void android.os.Looper.loop() (Looper.java:154)
05-23 12:46:39.928 I/art     (14066):   at void android.os.HandlerThread.run() (HandlerThread.java:61)
05-23 12:46:39.928 I/art     (14066): 
Thread started:  #33
Unhandled Exception:

Java.Lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/vision/zzad;
moljac commented 5 years ago

@KthProg

This error often means there is no jar in the app, but could be other reasons (SDK installation, nuget package restore/update, target-framework, bin/obj folders dirty, IDE needs restart)...

Are you:

  1. using linker? try turning it off
  2. using proguard? also try turning it off

I'm investigating other possibilities...

subsembly commented 5 years ago

Almost the very same problem here. Linking and Proguard is turned off. Only a different class failed when trying to access the FirebaseVision.Instance.OnDeviceTextRecognizer:

Java.Lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/vision/zzl;

moljac commented 5 years ago

I work on surfacing all those obfuscated classes and then we'll see. Though this does not make any sense.

moljac commented 5 years ago

@subsembly And the code snippet is the same?

FirebaseVision.Instance.OnDeviceTextRecognizer

???

moljac commented 5 years ago

Google Pixel 3 XL:

Barcode Format: UpcE
Value Format: Product
[es.visionsampl] Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)
[es.visionsampl] Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist, linking, allowed)
[es.visionsampl] Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
[es.visionsampl] Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)
[es.visionsampl] Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
Barcode Format: UpcE
Value Format: Product
[Mono] DllImport searching in: '__Internal' ('(null)').
[Mono] Searching for 'java_interop_jnienv_get_object_field'.
[Mono] Probing 'java_interop_jnienv_get_object_field'.
[Mono] Found as 'java_interop_jnienv_get_object_field'.
Barcode Format: UpcE
Value Format: Product

I cannot repro the crash

subsembly commented 5 years ago

My code is very simple:

FirebaseVision aVision = FirebaseVision.Instance; FirebaseVisionTextRecognizer aTextRecognizer = aVision.OnDeviceTextRecognizer;

The exception details:

05-27 13:50:41.611 E/AndroidRuntime(28848): FATAL EXCEPTION: FirebaseMLHandler
05-27 13:50:41.611 E/AndroidRuntime(28848): Process: subsembly.banking, PID: 28848
05-27 13:50:41.611 E/AndroidRuntime(28848): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/vision/zzl;
05-27 13:50:41.611 E/AndroidRuntime(28848):     at com.google.android.gms.internal.firebase_ml.zziz.zzfm(Unknown Source:7)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at com.google.android.gms.internal.firebase_ml.zzhr.zzfp(Unknown Source:7)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at com.google.android.gms.internal.firebase_ml.zzhr.call(Unknown Source:23)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at com.google.android.gms.internal.firebase_ml.zzhg.zza(Unknown Source:29)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at com.google.android.gms.internal.firebase_ml.zzhh.run(Unknown Source:2)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at android.os.Handler.handleCallback(Handler.java:891)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at android.os.Handler.dispatchMessage(Handler.java:102)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at android.os.Looper.loop(Looper.java:207)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at android.os.HandlerThread.run(HandlerThread.java:65)
05-27 13:50:41.611 E/AndroidRuntime(28848): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.vision.zzl" on path: DexPathList[[zip file "/data/app/subsembly.banking-yKltfNiDk9YjZXe8NhuCbw==/base.apk"],nativeLibraryDirectories=[/data/app/subsembly.banking-yKltfNiDk9YjZXe8NhuCbw==/lib/arm, /data/app/subsembly.banking-yKltfNiDk9YjZXe8NhuCbw==/base.apk!/lib/armeabi-v7a, /system/lib, /product/lib]]
05-27 13:50:41.611 E/AndroidRuntime(28848):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
05-27 13:50:41.611 E/AndroidRuntime(28848):     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
05-27 13:50:41.611 E/AndroidRuntime(28848):     ... 9 more
subsembly commented 5 years ago

@moljac Are you trying the OnDeviceTextRecognizer? Your trace looks like you are using the barcode recognizer.

moljac commented 5 years ago

Sorry wrong issue... My bad

Trying to solve several issues at once.

moljac commented 5 years ago

@subsembly @KthProg preview6 is out. Please try it out and close this one if the issue is fixed. If not just report it here.

KthProg commented 5 years ago

This issue is fixed. There may be a new issue but I have to do more testing.