Android Studio HelloWord 测试程序在Android5.1真机上运行异常分析
2016-05-04 10:10
921 查看
安装完成Android Studio以后,想跑一下HelloWord的测试程序,发现在模拟器上跑起来正常,但在真机上运行起来有问题,API选择的是22,Android5.1。
报错如下:
05-03 09:27:03.660 5349-5361/? E/cutils-trace: Error opening trace file: Permission denied (13)
05-03 09:27:03.716 5349-5349/? E/appproc: ERROR: could not find class ‘com.android.commands.pm.Pm’
05-03 09:27:03.716 5349-5349/? A/art: art/runtime/thread.cc:1143] No pending exception expected: java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.pm.Pm” on path: DexPathList[[zip file “/system/framework/pm.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143]
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Runtime aborting…
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Aborting thread:
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | group=”” sCount=0 dsCount=0 obj=0x12de05e0 self=0x7fa1895000
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | sysTid=5349 nice=0 cgrp=default sched=0/0 handle=0x7fa51dee50
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | state=R schedstat=( 0 0 0 ) utm=171 stm=30 core=2 HZ=100
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | stack=0x7fc0a2b000-0x7fc0a2d000 stackSize=8MB
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | held mutexes= “abort lock” “mutator lock”(shared held)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] native: #00 pc 000045cc /system/lib64/libbacktrace_libc++.so (Backtrace::Unwind(unsigned long, ucontext*)+28)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] native: #01 pc 00000027 ???
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] (no managed stack frames)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Pending exception java.lang.ClassNotFoundException thrown by ‘unknown throw location’
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.pm.Pm” on path: DexPathList[[zip file “/system/framework/pm.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Dumping all threads without appropriate locks held: thread list lock
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] All threads:
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] DALVIK THREADS (10):
05-03 09:27:03.882 5349-5349/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 5349 (main)
05-03 09:27:03.998 1512-1512/? E/DEBUG: AM write failure (32 / Broken pipe)
05-03 09:27:05.679 2578-2578/com.tianci.push E/push_service: !!!!!!!!!!!!!!!!!!bar-code===
05-03 09:27:06.634 5383-5396/? E/cutils-trace: Error opening trace file: Permission denied (13)
05-03 09:27:06.688 5383-5383/? E/appproc: ERROR: could not find class ‘com.android.commands.am.Am’
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] No pending exception expected: java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.am.Am” on path: DexPathList[[zip file “/system/framework/am.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:06.689 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:06.689 5383-5383/? A/art: art/runtime/thread.cc:1143]
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Runtime aborting…
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Aborting thread:
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | group=”” sCount=0 dsCount=0 obj=0x2c8055e0 self=0x7f7e895000
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | sysTid=5383 nice=0 cgrp=default sched=0/0 handle=0x7f82306e50
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | state=R schedstat=( 0 0 0 ) utm=163 stm=32 core=1 HZ=100
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | stack=0x7fde77a000-0x7fde77c000 stackSize=8MB
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | held mutexes= “abort lock” “mutator lock”(shared held)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] native: #00 pc 000045cc /system/lib64/libbacktrace_libc++.so (Backtrace::Unwind(unsigned long, ucontext*)+28)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] native: #01 pc 00000027 ???
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] (no managed stack frames)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Pending exception java.lang.ClassNotFoundException thrown by ‘unknown throw location’
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.am.Am” on path: DexPathList[[zip file “/system/framework/am.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Dumping all threads without appropriate locks held: thread list lock
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] All threads:
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] DALVIK THREADS (10):
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
感觉很奇怪,错误显示都找不到Pm和Am等一些Framework运行的关键类。怎么会找不到呢,手动cd到system/framework下去,看到这些jar包也都是存在的。
对比了一下其它Android4.4、Android5.0、Android5.1的真机平台,发现这个测试程序都是可以正常运行的。那说明,程序本身是没有问题的。难道是无法运行的这个平台的Android5.1 环境有什么差异导致。
手动把无法安装的apk,拷贝到U盘里面,执行pm install -r /mnt/usb/sda1/app-debug.apk &logcat 在后台打印出无法安装成功的完整错误信息,发现有报错,各种permission denied,在网上搜了下此错误,
https://community.freescale.com/thread/355198
**参照此说法进行修改
I have changed the permission to 0x777 for files present in /system/framework.**
先修改了Framework的文件夹权限是755,改成777以后发现错误依旧存在;
最后把Framework下所有的文件夹权限都改成777以后发现apk才能安装成功。
可能是Android5.1上对权限的要求更加严格了造成的吧,Android Studio终于和Android5.1的单板可以正常联调
a63d
了。
为了验证我的做法是否有效,我重新把刚才安装的apk卸载掉,退回刚才所有手动修改的文件的权限。在去用Android Studio adb连接上去run 应用的时候发现不报错了,可以直接安装成功。好奇怪,怎么这次不修改权限也可跑起来,好吧,没整清楚。
但可以肯定的是这个错误确实是由Framework下文件的权限不对造成的,修改完权限后确实是有用的。
报错如下:
05-03 09:27:03.660 5349-5361/? E/cutils-trace: Error opening trace file: Permission denied (13)
05-03 09:27:03.716 5349-5349/? E/appproc: ERROR: could not find class ‘com.android.commands.pm.Pm’
05-03 09:27:03.716 5349-5349/? A/art: art/runtime/thread.cc:1143] No pending exception expected: java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.pm.Pm” on path: DexPathList[[zip file “/system/framework/pm.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:03.717 5349-5349/? A/art: art/runtime/thread.cc:1143]
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Runtime aborting…
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Aborting thread:
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | group=”” sCount=0 dsCount=0 obj=0x12de05e0 self=0x7fa1895000
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | sysTid=5349 nice=0 cgrp=default sched=0/0 handle=0x7fa51dee50
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | state=R schedstat=( 0 0 0 ) utm=171 stm=30 core=2 HZ=100
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | stack=0x7fc0a2b000-0x7fc0a2d000 stackSize=8MB
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] | held mutexes= “abort lock” “mutator lock”(shared held)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] native: #00 pc 000045cc /system/lib64/libbacktrace_libc++.so (Backtrace::Unwind(unsigned long, ucontext*)+28)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] native: #01 pc 00000027 ???
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] (no managed stack frames)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Pending exception java.lang.ClassNotFoundException thrown by ‘unknown throw location’
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.pm.Pm” on path: DexPathList[[zip file “/system/framework/pm.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] Dumping all threads without appropriate locks held: thread list lock
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] All threads:
05-03 09:27:03.878 5349-5349/? A/art: art/runtime/runtime.cc:289] DALVIK THREADS (10):
05-03 09:27:03.882 5349-5349/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 5349 (main)
05-03 09:27:03.998 1512-1512/? E/DEBUG: AM write failure (32 / Broken pipe)
05-03 09:27:05.679 2578-2578/com.tianci.push E/push_service: !!!!!!!!!!!!!!!!!!bar-code===
05-03 09:27:06.634 5383-5396/? E/cutils-trace: Error opening trace file: Permission denied (13)
05-03 09:27:06.688 5383-5383/? E/appproc: ERROR: could not find class ‘com.android.commands.am.Am’
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] No pending exception expected: java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.am.Am” on path: DexPathList[[zip file “/system/framework/am.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:06.688 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:06.689 5383-5383/? A/art: art/runtime/thread.cc:1143] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:06.689 5383-5383/? A/art: art/runtime/thread.cc:1143]
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Runtime aborting…
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Aborting thread:
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | group=”” sCount=0 dsCount=0 obj=0x2c8055e0 self=0x7f7e895000
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | sysTid=5383 nice=0 cgrp=default sched=0/0 handle=0x7f82306e50
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | state=R schedstat=( 0 0 0 ) utm=163 stm=32 core=1 HZ=100
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | stack=0x7fde77a000-0x7fde77c000 stackSize=8MB
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] | held mutexes= “abort lock” “mutator lock”(shared held)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] native: #00 pc 000045cc /system/lib64/libbacktrace_libc++.so (Backtrace::Unwind(unsigned long, ucontext*)+28)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] native: #01 pc 00000027 ???
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] (no managed stack frames)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Pending exception java.lang.ClassNotFoundException thrown by ‘unknown throw location’
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] java.lang.ClassNotFoundException: Didn’t find class “com.android.commands.am.Am” on path: DexPathList[[zip file “/system/framework/am.jar”],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] Dumping all threads without appropriate locks held: thread list lock
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] All threads:
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] DALVIK THREADS (10):
05-03 09:27:06.846 5383-5383/? A/art: art/runtime/runtime.cc:289] “main” prio=5 tid=1 Runnable
感觉很奇怪,错误显示都找不到Pm和Am等一些Framework运行的关键类。怎么会找不到呢,手动cd到system/framework下去,看到这些jar包也都是存在的。
对比了一下其它Android4.4、Android5.0、Android5.1的真机平台,发现这个测试程序都是可以正常运行的。那说明,程序本身是没有问题的。难道是无法运行的这个平台的Android5.1 环境有什么差异导致。
手动把无法安装的apk,拷贝到U盘里面,执行pm install -r /mnt/usb/sda1/app-debug.apk &logcat 在后台打印出无法安装成功的完整错误信息,发现有报错,各种permission denied,在网上搜了下此错误,
https://community.freescale.com/thread/355198
**参照此说法进行修改
I have changed the permission to 0x777 for files present in /system/framework.**
先修改了Framework的文件夹权限是755,改成777以后发现错误依旧存在;
最后把Framework下所有的文件夹权限都改成777以后发现apk才能安装成功。
可能是Android5.1上对权限的要求更加严格了造成的吧,Android Studio终于和Android5.1的单板可以正常联调
a63d
了。
为了验证我的做法是否有效,我重新把刚才安装的apk卸载掉,退回刚才所有手动修改的文件的权限。在去用Android Studio adb连接上去run 应用的时候发现不报错了,可以直接安装成功。好奇怪,怎么这次不修改权限也可跑起来,好吧,没整清楚。
但可以肯定的是这个错误确实是由Framework下文件的权限不对造成的,修改完权限后确实是有用的。
相关文章推荐
- Android Studio HelloWord 测试程序在Android5.1真机上运行异常分析
- Android Studio HelloWord 测试程序在Android5.1真机上运行异常分析
- Android开发周刊 第四期
- Android 百个项目的源代码
- Android提示版本更新
- Android中两种设置全屏的方法!!!
- android 之ProgressDialog进度条 显示 单位(kb)
- Android按返回键弹出对话框退出应用程序
- Android捕获全局异常CrashExceptionHander 使用
- Android HandlerThread使用总结
- Android 判断root
- Android中如何使用命令行查看内嵌数据库SQLite3
- android.view.InflateException: Binary XML file: Error inflating class fragment
- Android5.1和Android6.0定时编译项目方法
- Android Studio自功添加注释
- android studio 引入从github下载的开源框架
- 对Android四大组件的认识
- Android 门外汉
- Android进阶之AlertDialog自定义
- 入职新公司,新起点,新挑战,以此为纪!