如题,最近fix历史的坑— JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring 的case
然后很自信的根据如下信息去排查代码,结果做了几个小时的无用功。
A/k.myapplicatio: java_vm_ext.cc:545] JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring
java_vm_ext.cc:545] in call to GetStringUTFChars
java_vm_ext.cc:545] from void com.sdk.myapplication.MainActivity.triggerGetStringUTFCharsNPE(java.lang.String, java.lang.String)
原因上面的出现信息中, from 某个Jni的方法是指JVM调到该方法后GetStringUTFChars入参jstring为空的情况,必不是特指该方法体中调GetStringUTFChars的地方出现了NULl指针,而是包括该方法中调用其它的C/C++方法出现NULL指针的情况。所以我们去定位这类问题,还是要细仔看个崩溃堆栈,才能快速定位到是那个地方产出的NULL指针,避免无效输出

如上示例是根据自己的业务代码,抽像出来的
示例代码如下
java
public class MainActivity extends AppCompatActivity {
// Used to load the 'native-lib' library on application startup.
static {

本文探讨了如何解决JNIDETECTEDERRORINAPPLICATION在Android应用中遇到的GetStringUTFChars接收空jstring的问题,强调了通过崩溃堆栈分析来定位真正引发错误的代码区域,避免无效排查。
最低0.47元/天 解锁文章
1769

被折叠的 条评论
为什么被折叠?



