GooglePlayServicesComponents icon indicating copy to clipboard operation
GooglePlayServicesComponents copied to clipboard

Xamarin.GooglePlayServices.MLKit.Text.Recognition missing dependency

Open ahmed-hararaa opened this issue 4 years ago • 4 comments

Xamarin.Android Version (eg: 6.0):

10

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

Windows 10

Describe your Issue

Xamarin.GooglePlayServices.MLKit.Text.Recognition missing dependency Packages used:

    <PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" />
    <PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
    <PackageReference Include="Xamarin.GooglePlayServices.MLKit.Text.Recognition" Version="116.1.3" />

Build settings (tools)

    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidUseAapt2>true</AndroidUseAapt2>

Minimal Repro Code Sample

https://github.com/maxvodoo/AccTest/tree/master/AccTest

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

1- build solution 2- run the app

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

(29172): java.lang.RuntimeException: Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.mlkit.vision.text.internal.zzk]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.common.sdkinternal.ExecutorSelector, type=required, injection=direct}, Dependency{anInterface=class com.google.mlkit.vision.text.internal.zzn, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.ExecutorSelector
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.installProvider(ActivityThread.java:7192)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.installContentProviders(ActivityThread.java:6670)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6565)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.access$1400(ActivityThread.java:224)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.os.Handler.dispatchMessage(Handler.java:107)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.os.Looper.loop(Looper.java:224)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.main(ActivityThread.java:7560)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at java.lang.reflect.Method.invoke(Native Method)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
05-07 04:37:32.744 E/AndroidRuntime(29172): Caused by: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.mlkit.vision.text.internal.zzk]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.common.sdkinternal.ExecutorSelector, type=required, injection=direct}, Dependency{anInterface=class com.google.mlkit.vision.text.internal.zzn, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.ExecutorSelector
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.firebase.components.ComponentRuntime.processDependencies(ComponentRuntime.java:324)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.firebase.components.ComponentRuntime.discoverComponents(ComponentRuntime.java:139)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:91)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:65)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.mlkit.common.sdkinternal.MlKitContext.zza(com.google.mlkit:common@@17.1.1:6)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.mlkit.common.internal.MlKitInitProvider.onCreate(com.google.mlkit:common@@17.1.1:3)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.content.ContentProvider.attachInfo(ContentProvider.java:2117)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.content.ContentProvider.attachInfo(ContentProvider.java:2091)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at com.google.mlkit.common.internal.MlKitInitProvider.attachInfo(com.google.mlkit:common@@17.1.1:3)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	at android.app.ActivityThread.installProvider(ActivityThread.java:7187)
05-07 04:37:32.744 E/AndroidRuntime(29172): 	... 10 more

ahmed-hararaa avatar May 07 '21 04:05 ahmed-hararaa

Notes:

find ./generated -name "*.MlKitInitProvider.cs"
./generated/com.google.mlkit.common/obj/Release/monoandroid90/generated/src/Xamarin.Google.MLKit.Common.Internal.MlKitInitProvider.cs

com.google.android.gms.play-services-mlkit-text-recognition.csproj

Project references:

        <ProjectReference Include="..\..\generated\com.google.android.gms.play-services-base\com.google.android.gms.play-services-base.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.android.gms.play-services-basement\com.google.android.gms.play-services-basement.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.android.gms.play-services-clearcut\com.google.android.gms.play-services-clearcut.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.android.gms.play-services-tasks\com.google.android.gms.play-services-tasks.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.firebase.firebase-components\com.google.firebase.firebase-components.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.firebase.firebase-encoders\com.google.firebase.firebase-encoders.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.firebase.firebase-encoders-json\com.google.firebase.firebase-encoders-json.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.mlkit.common\com.google.mlkit.common.csproj" PrivateAssets="none" />
        <ProjectReference Include="..\..\generated\com.google.mlkit.vision-common\com.google.mlkit.vision-common.csproj" PrivateAssets="none" />

find ./generated -name "*.Zzk.cs"

None.

find ./generated -type f -name "api.xml" -exec grep -Hni  "com.google.mlkit.vision.text.internal.zzk" {} \;
./generated/com.google.android.gms.play-services-mlkit-text-recognition/obj/Release/monoandroid90/api.xml:3275:    
<class abstract="false" deprecated="not deprecated" extends="java.lang.Object" extends-generic-aware="java.lang.Object" jni-extends="Ljava/lang/Object;" final="true" name="zzk" static="false" visibility="public" jni-signature="Lcom/google/mlkit/vision/text/internal/zzk;">

moljac avatar May 07 '21 08:05 moljac

@maxvodoo Thanks for reporting and the repro sample! Appreciated!

moljac avatar May 07 '21 08:05 moljac

How can I get Text from task.Result?

pulmuone avatar May 27 '21 02:05 pulmuone

var barcode = task.Result.JavaCast<Android.Runtime.JavaList<Barcode>>(); foreach(Barcode item in barcode) { Console.WriteLine(item.DisplayValue); }

pulmuone avatar May 27 '21 02:05 pulmuone