ZXing.Net.Mobile 在 Android - 资源 NotFoundException

ZXing.Net.Mobile on Android - Resource NotFoundException

我正在尝试为 Android 实现 ZXing.Net.Mobile,但出现运行时错误。

        MobileBarcodeScanner scanner = new MobileBarcodeScanner(_activity);
        ZXing.Result result = await scanner.Scan(); // crashes here
        HandleZXingResult(result);

我将 Xamarin 用于 Visual Studio。

问题似乎与缺少资源以及它何时尝试 SetContentView(layout) 有关。我只是在使用 ZXing Dll。不确定在哪里包含资源。

堆栈跟踪:

06-16 01:03:44.353 I/MonoDroid( 7783): UNHANDLED EXCEPTION:
06-16 01:03:44.413 I/MonoDroid( 7783): Android.Content.Res.Resources+NotFoundException: Exception of type 'Android.Content.Res.Resources+NotFoundException' was thrown.
06-16 01:03:44.413 I/MonoDroid( 7783): at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () 
06-16 01:03:44.413 I/MonoDroid( 7783): at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (intptr,intptr,intptr,Android.Runtime.JValue[]) [0x00084] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.20-series/ba9bbbdd/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:896
06-16 01:03:44.413 I/MonoDroid( 7783): at Android.App.Activity.SetContentView (int) [0x00070] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.20-series/ba9bbbdd/source/monodroid/src/Mono.Android/platforms/android-8/src/generated/Android.App.Activity.cs:3244
android.content.res.Resources$NotFoundException: File res/drawable-hdpi-v4/icon.png from xml type layout resource ID #0x7f020000
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:3733)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:3680)
    at android.content.res.Resources.getLayout(Resources.java:2166)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366)
    at android.app.Activity.setContentView(Activity.java:2031)
    at zxing.mobile.ZxingActivity.n_onCreate(Native Method)
    at zxing.mobile.ZxingActivity.onCreate(ZxingActivity.java:31)
    at android.app.Activity.performCreate(Activity.java:5451)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
    at android.app

不要为 android 使用 nuget,尝试从 Xamarin Component Store 安装组件。它对我有用。

我遇到这个问题是因为 zxing nuget 包在依赖程序集(我们自己的条形码插件程序集抽象)中被引用,但在父应用程序程序集中没有被引用。 在两个项目中都引用了包,然后 运行 没问题。