Android 如何捕获无效的间接引用异常?
以下代码将在获取包名时导致dvmaport()。但是上下文对象是全局应用程序对象,此引用应该有效 我想捕获此异常或解决此崩溃,谁能帮助我Android 如何捕获无效的间接引用异常?,android,java-native-interface,Android,Java Native Interface,以下代码将在获取包名时导致dvmaport()。但是上下文对象是全局应用程序对象,此引用应该有效 我想捕获此异常或解决此崩溃,谁能帮助我 jclass ctx_class = env->GetObjectClass(context); >>> Backtrace <<< #00 pc 00022184 /system/lib/libc.so (tgkill+12) #01 pc 000131d9 /system/lib/libc.so (pthre
jclass ctx_class = env->GetObjectClass(context);
>>> Backtrace <<<
#00 pc 00022184 /system/lib/libc.so (tgkill+12)
#01 pc 000131d9 /system/lib/libc.so (pthread_kill+48)
#02 pc 000133ed /system/lib/libc.so (raise+10)
#03 pc 00012123 /system/lib/libc.so (?+0)
#04 pc 00021a38 /system/lib/libc.so (abort+4)
#05 pc 00048c9f /system/lib/libdvm.so (dvmAbort+78)
#06 pc 0004d607 /system/lib/libdvm.so (dvmDecodeIndirectRef(Thread*, _jobject*)+146)
#07 pc 0005018b /system/lib/libdvm.so (?+0)
#10 pc 000204cc /system/lib/libdvm.so (dvmPlatformInvoke+112)
#11 pc 00051157 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#12 pc 00052b41 /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+184)
#13 pc 00029960 /system/lib/libdvm.so (?+0)
#14 pc 00030dec /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)
#15 pc 0002e484 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#16 pc 000635b9 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)
#17 pc 000635dd /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#18 pc 000582bb /system/lib/libdvm.so (?+0)
#19 pc 0000d2c8 /system/lib/libc.so (__thread_entry+72)
#20 pc 0000d460 /system/lib/libc.so (pthread_create+240)
jclass ctx_class=env->GetObjectClass(上下文);
>>>回溯确保上下文是某个类的实例,并且不为null;并添加一些日志以确定此处出现的内容上下文是全局应用程序实例且不为空。但我无法经常修改代码以获取联机环境的日志:(如果您无法调试程序,最好的方法是添加一些详细的日志确保上下文是某个类的实例,且不为null;并添加一些日志以确定此处出现的内容上下文是全局应用程序实例且不为null。但我不能经常修改代码以获取联机环境的日志。:(如果无法调试程序,最好的方法是添加一些详细日志