如何调试Android本机崩溃日志(可能是多个webview问题)?

如何调试Android本机崩溃日志(可能是多个webview问题)?,android,android-studio,debugging,java-native-interface,Android,Android Studio,Debugging,Java Native Interface,我遇到了一个无法直接链接到我的代码的崩溃,然后我发现这是一个本机崩溃。回溯是这样的 Abort message: '[FATAL:jni_android.cc(259)] Please include Java exception stack in crash report ' r0 00000000 r1 00003c12 r2 00000006 r3 00000008 r4 7cb80978 r5 00000006 r6 7cb80920

我遇到了一个无法直接链接到我的代码的崩溃,然后我发现这是一个本机崩溃。回溯是这样的

Abort message: '[FATAL:jni_android.cc(259)] Please include Java exception stack in crash report
    '
        r0 00000000  r1 00003c12  r2 00000006  r3 00000008
        r4 7cb80978  r5 00000006  r6 7cb80920  r7 0000010c
        r8 7cb7ffad  r9 7cb7ffac  sl 7cb80408  fp 7cb80404
        ip 0000000b  sp 7cb7ff38  lr b3eab4b7  pc b3eadd20  cpsr 600f0010

A/DEBUG: backtrace:
        #00 pc 0004ad20  /system/lib/libc.so (tgkill+12)
        #01 pc 000484b3  /system/lib/libc.so (pthread_kill+34)
        #02 pc 0001dd89  /system/lib/libc.so (raise+10)
        #03 pc 00019511  /system/lib/libc.so (__libc_android_abort+34)
        #04 pc 00017150  /system/lib/libc.so (abort+4)
        #05 pc 0079a29b  /data/app/com.android.chrome-1/base.apk (offset 0xfa5000)
我想知道如何利用它来帮助我找到我的问题。我知道这太广泛了,很难在我的代码中找到问题。所以我想知道是否有人可以给任何指示或方向,以利用这个日志?为了提供更多信息,当它崩溃时,我有多个Web视图,是否可能是内存碎片错误?如果是,我该怎么办?重新创建webview? 似乎在这之前有什么

System.err: java.lang.IllegalStateException: get field slot from row 25 col 46 failed
        at net.sqlcipher.CursorWindow.getLong_native(Native Method)
05-29 15:38:24.016 22757-23608/com.boxer.email W/System.err:     at net.sqlcipher.CursorWindow.getLong(CursorWindow.java:450)
        at net.sqlcipher.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:110)
        at net.sqlcipher.AbstractCursor.moveToPosition(AbstractCursor.java:201)
        at net.sqlcipher.AbstractCursor.moveToNext(AbstractCursor.java:230)
05-29 15:38:24.017 22757-23608/com.boxer.email W/System.err:     at android.database.CursorWrapper.moveToNext(CursorWrapper.java:202)
        at android.database.CursorWrapper.moveToNext(CursorWrapper.java:202)
        at android.database.CursorWrapper.moveToNext(CursorWrapper.java:202)
        at android.database.CursorWrapper.moveToNext(CursorWrapper.java:202)
尝试在onDestroy方法中销毁webview,因为webview客户端或Chromium客户端正在加载数据,即使您的活动或片段已销毁

试试这个:

@Override
protected void onDestroy() {
    if (myWbView != null)
        myWbView.destroy();
    super.onDestroy();
}


如果您有符号文件,请考虑使用NDK堆栈 示例用法: adb logcat | ~/Library/Android/Android-ndk-r17/ndk stack-sym/armeabi-v7a/

这将显示崩溃所在的函数


官方链接:

com.android.chrome表明问题来自网络视图。@DoronYakovlev Golani看起来是这样,你有什么建议吗,下一步如何调试以定位问题?同样,我知道这是一个非常广泛的问题,请给出您能想到的任何东西。消息表明您的logcat可能也包含报告的Java异常堆栈。@AlexCohn我确实找到了套接字超时异常,但不认为它会导致这里的崩溃。@DoronYakovlev Golani我再次搜索过。情况是,我在一个视图中有多个Web视图。因为我必须使用多个Web视图来改进UI | UX,而不是只使用一个。您认为这是因为内存碎片错误吗?
@Override
public void onDestroyView() {
    super.onDestroyView();
    webView=null; // remove webView, prevent chromium to crash
}