googlesamples / mlkit

A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS
Apache License 2.0
3.51k stars 2.92k forks source link

[Bug report] Android 14 Model Download Issues #744

Closed sebastian-hoebarth closed 9 months ago

sebastian-hoebarth commented 11 months ago

implementation("androidx.camera:camera-core:1.2.3") implementation("androidx.camera:camera-camera2:1.2.3") implementation("androidx.camera:camera-lifecycle:1.2.3") implementation("androidx.camera:camera-view:1.2.3") implementation("androidx.camera:camera-mlkit-vision:1.4.0-alpha01")

implementation("com.google.mlkit:object-detection:17.0.0") implementation("com.google.mlkit:image-labeling-custom:17.0.1") implementation("com.google.mlkit:linkfirebase:17.0.0")

//using firebase model

val firebaseModelSource = FirebaseModelSource.Builder(Settings.detection_model()).build() val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build()

//first execution error: java.lang.SecurityException: com.nastylion.pilz: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts at android.os.Parcel.createExceptionOrNull(Parcel.java:3057) at android.os.Parcel.createException(Parcel.java:3041) at android.os.Parcel.readException(Parcel.java:3024) at android.os.Parcel.readException(Parcel.java:2966) at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5684) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1852) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:767) at com.google.mlkit.common.sdkinternal.model.RemoteModelDownloadManager.zzj(com.google.mlkit:common@@18.0.0:3) at com.google.mlkit.common.sdkinternal.model.RemoteModelDownloadManager.ensureModelDownloaded(com.google.mlkit:common@@18.0.0:15) at com.google.mlkit.common.internal.model.zzd.then(com.google.mlkit:common@@18.0.0:1) at com.google.android.gms.tasks.zzo.run(com.google.android.gms:play-services-tasks@@18.0.2:1) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: android.os.RemoteException: Remote stack trace: at com.android.server.am.ActivityManagerService.registerReceiverWithFeature(ActivityManagerService.java:13989) at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2570) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2764) at android.os.Binder.execTransactInternal(Binder.java:1332) at android.os.Binder.execTransact(Binder.java:1278)

//Second execution error:

Fatal Exception: com.google.android.gms.tasks.RuntimeExecutionException: com.google.mlkit.common.MlKitException: Hash does not match with expected at com.google.android.gms.tasks.zzw.getResult(com.google.android.gms:play-services-tasks@@18.0.2:3) at com.google.mlkit.common.internal.model.zzg.zzd(com.google.mlkit:common@@18.0.0:1) at com.google.mlkit.common.internal.model.zzc.onComplete(:2) at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8171) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

   Caused by com.google.mlkit.common.MlKitException: Hash does not match with expected
   at com.google.mlkit.common.sdkinternal.model.RemoteModelFileManager.moveModelToPrivateFolder(com.google.mlkit:common@@18.0.0:24)
   at com.google.mlkit.common.sdkinternal.model.RemoteModelDownloadManager.zzi(com.google.mlkit:common@@18.0.0:7)
   at com.google.mlkit.common.sdkinternal.model.RemoteModelDownloadManager.isModelDownloadedAndValid(com.google.mlkit:common@@18.0.0:11)
   at com.google.mlkit.common.internal.model.zzg.zza(com.google.mlkit:common@@18.0.0:1)
   at com.google.mlkit.common.internal.model.zzf.call(:4)
   at com.google.mlkit.common.sdkinternal.zzg.run(com.google.mlkit:common@@18.0.0:1)
   at android.os.Handler.handleCallback(Handler.java:958)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loopOnce(Looper.java:205)
   at android.os.Looper.loop(Looper.java:294)
   at android.os.HandlerThread.run(HandlerThread.java:67)
jackqdyulei commented 10 months ago

Thanks for the report! We are fixing it and hopefully we can release it in Nov, 2023

jackqdyulei commented 9 months ago

The issue should be fixed in https://maven.google.com/web/index.html?q=image-labe#com.google.mlkit:image-labeling-custom:17.0.2. Please update to new latest SDK. Thanks!