我尝试使用loadLibrary UVCCamera
,但在连接设备时得到ClassNotFoundException
。
找不到ClassNotFoundException
这个UVCCamera.so
吗?
还是无法从UVCCamera
中找到方法或类?
还是我的问题出在哪里?
我应该尝试哪个方向?还是我错过了哪一步?谢谢。
2019-02-14 16:55:27.603 30921-30940/? E/libUVCCamera: [serenegiant_usb_UVCCamera.cpp:250:registerNativeMethods]:registerNativeMethods: class'com/serenegiant/usb/UVCCamera' not found
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "com.serenegiant.usb.UVCCamera" on path: DexPathList[[zip file "/data/app/com.vitiny.vitinyreader2-1/base.apk"],nativeLibraryDirectories=[/data/app/com.vitiny.vitinyreader2-1/lib/arm, /data/app/com.vitiny.vitinyreader2-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String) (Runtime.java:-2)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.String java.lang.Runtime.doLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1060)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.String) (Runtime.java:975)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1567)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void com.vitiny.vitinyreader2.usb.UVCCamera.<clinit>() (UVCCamera.java:60)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void com.vitiny.vitinyreader2.USBWebCam.CameraHandler$CameraThread.handleOpen(com.vitiny.vitinyreader2.usb.USBMonitor$UsbControlBlock) (CameraHandler.java:279)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void com.vitiny.vitinyreader2.USBWebCam.CameraHandler.handleMessage(android.os.Message) (CameraHandler.java:144)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void android.os.Looper.loop() (Looper.java:154)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at void com.vitiny.vitinyreader2.USBWebCam.CameraHandler$CameraThread.run() (CameraHandler.java:566)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470]
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] in call to NewGlobalRef
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] "CameraThread" prio=5 tid=15 Runnable
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] | group="main" sCount=0 dsCount=0 obj=0x12c47580 self=0xa2ed3000
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] | sysTid=30940 nice=0 cgrp=default sched=0/0 handle=0x90d95920
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] | state=R schedstat=( 3585209 1942552 10 ) utm=0 stm=0 core=0 HZ=100
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] | stack=0x90c93000-0x90c95000 stackSize=1038KB
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] | held mutexes= "mutator lock"(shared held)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #00 pc 0034f5b5 /system/lib/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+128)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #01 pc 0032ff71 /system/lib/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+308)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #02 pc 00239155 /system/lib/libart.so (_ZN3art9JavaVMExt8JniAbortEPKcS2_+848)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #03 pc 00239677 /system/lib/libart.so (_ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list+58)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #04 pc 000ca47b /system/lib/libart.so (_ZN3art11ScopedCheck6AbortFEPKcz+46)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #05 pc 000ca067 /system/lib/libart.so (_ZN3art11ScopedCheck11CheckThreadEP7_JNIEnv+362)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #06 pc 000c907f /system/lib/libart.so (_ZN3art11ScopedCheck22CheckPossibleHeapValueERNS_18ScopedObjectAccessEcNS_12JniValueTypeE+26)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #07 pc 000c855b /system/lib/libart.so (_ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE+802)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #08 pc 000cb229 /system/lib/libart.so (_ZN3art8CheckJNI6NewRefEPKcP7_JNIEnvP8_jobjectNS_15IndirectRefKindE+452)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #09 pc 00335b81 /system/lib/libart.so (_ZN3art6Thread22SetClassLoaderOverrideEP8_jobject+32)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #10 pc 0023b11b /system/lib/libart.so (_ZN3art9JavaVMExt17LoadNativeLibraryEP7_JNIEnvRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEP8_jobjectP8_jstringPS9_+1878)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #11 pc 00003167 /system/lib/libopenjdkjvm.so (JVM_NativeLoad+178)
2019-02-14 16:55:27.636 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] native: #12 pc 0007118d /system/framework/arm/boot.oat (Java_java_lang_Runtime_nativeLoad__Ljava_lang_String_2Ljava_lang_ClassLoader_2Ljava_lang_String_2+144)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Runtime.nativeLoad(Native method)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Runtime.doLoad(Runtime.java:1060)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] - locked <0x0c2d04f6> (a java.lang.Runtime)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.Runtime.loadLibrary0(Runtime.java:975)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] - locked <0x0c2d04f6> (a java.lang.Runtime)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at java.lang.System.loadLibrary(System.java:1567)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at com.vitiny.vitinyreader2.usb.UVCCamera.<clinit>(UVCCamera.java:60)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at com.vitiny.vitinyreader2.USBWebCam.CameraHandler$CameraThread.handleOpen(CameraHandler.java:279)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at com.vitiny.vitinyreader2.USBWebCam.CameraHandler.handleMessage(CameraHandler.java:144)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at android.os.Handler.dispatchMessage(Handler.java:102)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at android.os.Looper.loop(Looper.java:154)
2019-02-14 16:55:27.637 30921-30940/? A/art: art/runtime/java_vm_ext.cc:470] at com.vitiny.vitinyreader2.USBWebCam.CameraHandler$CameraThread.run(CameraHandler.java:566)
答案 0 :(得分:0)
2019-02-14 16:55:27.603 30921-30940 /? E / libUVCCamera:[serenegiant_usb_UVCCamera.cpp:250:registerNativeMethods]:registerNativeMethods:未找到类'com / serenegiant / usb / UVCCamera'
您需要包括Java部分,即.jar
,它对应于您的共享库,即libUVCCamera.so
。
本机函数registerNativeMethods
尝试查找Java类com/serenegiant/usb/UVCCamera
并将其注册为JNI方法,因此必须确保此类在Java端可用。