And*_*der 11 java-native-interface android
我正在编写JNI应用程序.Logcat表示日志文件存在data/log/dumpstate_app_native.txt也是系统逻辑删除中的东西.当我将Samsung Infuse作为媒体设备访问时,我看不到任何此类文件.实际上我也没有看到我的应用程序数据文件?它们在哪里,我确实看到了其他应用程序包,但在数据期间并不多.这是我在logcat中看到的:
dumpstate /data/log/dumpstate_app_native.txt将/ data/tombstones/tombstone_01复制到DropBox(SYSTEM_TOMBSTONE)将堆栈跟踪写入'/data/anr/traces.txt
我在设备上搜索*.txt的媒体设备,但没有找到任何内容.
rob*_*inj 11
除非您使用模拟器或root电话,否则您将无法读取逻辑删除文件.Logcat会在调试级别打印出墓碑(在"复制墓碑"消息之前就是那个大核心转储).应该有一个看起来像这样的部分:
01-18 16:28:04.334 16759 16759 I DEBUG : scr 80000012
01-18 16:28:04.334 16759 16759 I DEBUG :
01-18 16:28:04.384 16759 16759 I DEBUG : #00 pc 00007f84 /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.384 16759 16759 I DEBUG : #01 pc 00008f80 /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG : #02 pc 00002c6a /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG : #03 pc 00002ea8 /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG : #04 pc 00003178 /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG : #05 pc 00011e74 /system/lib/libdvm.so
...
Run Code Online (Sandbox Code Playgroud)
这是缩写的堆栈跟踪.您需要使用NDK中的addr2line工具来确定这些十六进制地址所引用的函数,文件和行号.在我的OSX系统上,获取stacktrace第一行的命令如下所示:
/opt/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-addr2line -f -e myJNIproject/obj/local/armeabi/myjnilib.so 0x00007f84
Run Code Online (Sandbox Code Playgroud)
其中myJNIproject/obj/local/armeabi/myjnilib.so是包含行号信息的myjnilib.so的版本.
| 归档时间: |
|
| 查看次数: |
10597 次 |
| 最近记录: |