dotnet / dotnet/android-libraries

Xamarin.Google.MLKit.Common.MlKitException: Failed to initialize detector

Open
#1,296 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
317
Forks
73
Avg merge
1d 8h
Merged PRs (30d)
17

Description

### Description

Im using ImageAnalysis to detect objects. This is how I create the detector:

```
var options = new ObjectDetectorOptions.Builder()
.SetDetectorModeAlternative(ObjectDetectorOptionsBase.StreamMode)
.EnableMultipleObjectsAlternative()
.EnableClassificationAlternative()
.Build();

detector = ObjectDetection.GetClient(options);
```

Then I call:

`var result = await detector.Process(input);`

However that line thows:

`{Xamarin.Google.MLKit.Common.MlKitException: Failed to initialize detector. ---> Java.IO.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed --- End of managed Java.IO.FileNotFoundException stack trace --- java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed at android.content.res.AssetManager.nativeOpenAssetFd(Native Method) at android.content.res.AssetManager.openFd(AssetManager.java:1074) at com.google.mlkit.vision.vkp.PipelineManager.zzb(com.google.mlkit:vision-internal-vkp@@18.2.3:1) at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:22) at com.google.mlkit.vision.objects.defaults.internal.zze.load(com.google.mlkit:object-detection@@17.0.2:16) at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.11.0:1) at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) at java.lang.Thread.run(Thread.java:1012) --- End of managed Java.IO.FileNotFoundException stack trace --- java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed at android.content.res.AssetManager.nativeOpenAssetFd(Native Method) at android.content.res.AssetManager.openFd(AssetManager.java:1074) at com.google.mlkit.vision.vkp.PipelineManager.zzb(com.google.mlkit:vision-internal-vkp@@18.2.3:1) at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:22) at com.google.mlkit.vision.objects.defaults.internal.zze.load(com.google.mlkit:object-detection@@17.0.2:16) at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.11.0:1) at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) at java.lang.Thread.run(Thread.java:1012) --- End of inner exception stack trace --- at DocumentScanner.DocumentAnalyzer.ProcessAsync(InputImage input, IImageProxy image, Int32 rotationDegrees) in C:\Users\jbern\source\repos\Sherpa\App\library\DocumentScanner\Platforms\Android\DocumentAnalyzer.cs:line 44 at DocumentScanner.BaseAndroidAnalyzer.Analyze(IImageProxy image) in C:\Users\jbern\source\repos\Sherpa\App\library\DocumentScanner\Platforms\Android\BaseAndroidAnalyzer.cs:line 26 --- End of managed Xamarin.Google.MLKit.Common.MlKitException stack trace --- com.google.mlkit.common.MlKitException: Failed to initialize detector. at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:87) at com.google.mlkit.vision.objects.defaults.internal.zze.load(com.google.mlkit:object-detection@@17.0.2:16) at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.11.0:1) at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) at java.lang.Thread.run(Thread.java:1012) Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed at android.content.res.AssetManager.nativeOpenAssetFd(Native Method) at android.content.res.AssetManager.openFd(AssetManager.java:1074) at com.google.mlkit.vision.vkp.PipelineManager.zzb(com.google.mlkit:vision-internal-vkp@@18.2.3:1) at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:22) ... 12 more --- End of managed Xamarin.Google.MLKit.Common.MlKitException stack trace --- com.google.mlkit.common.MlKitException: Failed to initialize detector. at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:87) at com.google.mlkit.vision.objects.defaults.internal.zze.load(com.google.mlkit:object-detection@@17.0.2:16) at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.11.0:4) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.11.0:1) at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.11.0:2) at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) at java.lang.Thread.run(Thread.java:1012) Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed at android.content.res.AssetManager.nativeOpenAssetFd(Native Method) at android.content.res.AssetManager.openFd(AssetManager.java:1074) at com.google.mlkit.vision.vkp.PipelineManager.zzb(com.google.mlkit:vision-internal-vkp@@18.2.3:1) at com.google.mlkit.vision.vkp.PipelineManager.start(com.google.mlkit:vision-internal-vkp@@18.2.3:22) ... 12 more }`

Im also using MLKit to detect QR Codes and that works without throwing the exception. The settings are almost the same.

Here: https://github.com/google/filament/discussions/5696 it explains how to fix it but no idea how this translates to NET MAUI. Any ideas??

If needed I can create a small repo with something to test

### Steps to Reproduce

1. Create a MAUI project that uses MLKit
2. Create an analyzer that uses ObjectDetector
3. The exception will be thrown when doing the process

### Link to public reproduction project repository

_No response_

### Version with bug

9.0.110 SR12

### Is this a regression from previous behavior?

Not sure, did not test other versions

### Last version that worked well

_No response_

### Affected platforms

Android

### Affected platform versions

_No response_

### Did you find any workaround?

_No response_

### Relevant log output

```shell

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.