簡體   English   中英

java.lang.ClassNotFoundException 綁定 Xamarin.ZE84E30B9390CDB486DZDB67 中的 java 庫

[英]java.lang.ClassNotFoundException binding java library in Xamarin.Android

I'm trying to bind the libuvccamera java library to access UVC camera in Android device developing in Xamarin.Android, and during the binding of the libuvccamera.aar and the usbCameraCommon.aar file I've a lot of trouble. 其中一次是 java class 的 USBMonitor 構造函數時調用的 java.lang.ClassNotFoundException:

    USBMonitor usb_monitor; 

    try
    {
        usb_monitor = new USBMonitor(this, this);

    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        Console.WriteLine(ex.StackTrace);
    }

我已經按照此處所述導入了.arr 庫在此處輸入圖像描述

但是當我創建分發並將應用程序運行到我的 Android 設備時,我收到如下異常調用:

Failed resolution of: Lcom/serenegiant/utils/HandlerThreadHandler;
  at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0008e] in <94b04e1756104d1fa1d144932ae2720c>:0 
  at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (System.IntPtr jobject, System.IntPtr jclass, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x00000] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/Android.Runtime/JNIEnv.g.cs:444 
  at Android.Runtime.JNIEnv.FinishCreateInstance (System.IntPtr instance, System.IntPtr jclass, System.IntPtr constructorId, Android.Runtime.JValue* constructorParameters) [0x00008] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/Android.Runtime/JNIEnv.cs:362 
  at Com.Serenegiant.Usb.USBMonitor..ctor (Android.Content.Context context, Com.Serenegiant.Usb.USBMonitor+IOnDeviceConnectListener listener) [0x000df] in C:\dev\code\curr\LETTURA_DATA_MATRIX_LUXOTTICA\DEMO\TEST_UVC_CAMERA_LIB\TEST_3\LIBUVC\obj\Debug\generated\src\Com.Serenegiant.Usb.USBMonitor.cs:1076 
  at TEST_3.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x0001e] in C:\dev\code\curr\LETTURA_DATA_MATRIX_LUXOTTICA\DEMO\TEST_UVC_CAMERA_LIB\TEST_3\TEST_3\MainActivity.cs:28 
  --- End of managed Java.Lang.NoClassDefFoundError stack trace ---
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/serenegiant/utils/HandlerThreadHandler;
    at com.serenegiant.usb.USBMonitor.<init>(USBMonitor.java:122)
    at crc645ed0f3853a61fd03.MainActivity.n_onCreate(Native Method)
    at crc645ed0f3853a61fd03.MainActivity.onCreate(MainActivity.java:44)
    at android.app.Activity.performCreate(Activity.java:7957)
    at android.app.Activity.performCreate(Activity.java:7946)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3598)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3775)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2261)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8107)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.serenegiant.utils.HandlerThreadHandler" on path: DexPathList[[zip file "/data/app/com.companyname.test_3-RASdU4LTR0mcU0jXj9KO8Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.companyname.test_3-RASdU4LTR0mcU0jXj9KO8Q==/lib/arm, /data/app/com.companyname.test_3-RASdU4LTR0mcU0jXj9KO8Q==/base.apk!/lib/armeabi-v7a, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    ... 18 more

一些建議如何解決這個問題?

謝謝!

我已經解決了這個問題。 我必須在 .arr 庫中實現 HandlerThreadHandler class,所以 USBMonitor class 的構造函數可以找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM