具体错误:
Failed to register native method com.serenegiant.usb.UVCCamera.nativeSetStatusCallback(JLcom/serenegiant/usb/IStatusCallback;)I in base.apk 2021-11-24 19:47:03.086 28179-28216/? E/libUVCCamera: [28216*serenegiant_usb_UVCCamera.cpp:2007: registerNativeMethods]:registerNativeMethods failed(class=com/serenegiant/usb/UVCCamera) --------- beginning of crash 2021-11-24 19:47:03.087 28179-28216/? E/AndroidRuntime: FATAL EXCEPTION: a Process: com.serenegiant.usbcameratest, PID: 28179 java.lang.NoSuchMethodError: no static or non-static method "Lcom/serenegiant/usb/UVCCamera;.Failed to register native method (JLcom/serenegiant/usb/IStatusCallback;)I"
解决办法:
就是签名不对。
特别是要注意加密的问题。从代码来看什么都对,打包之后,JAVA类名已经变了,而JNI一层还是原来的。