你的位置:首页 > 操作系统

[操作系统]记录android5.0更新踩过的坑


1. service的注册必须显示注册,不能隐式注册,相关链接http://www.eoeandroid.com/thread-568853-1-1.html
现象:Service Intent must be explicit:
解决:intent.setPackage("XXXXX");
 
2. android5.0art运行报错:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=564427
在该帖的5楼有解决方案

3. cocos2dx在5.0机器上报找不到包名错误
JNI DETECTED ERROR IN APPLICATION: illegal class name 'xxx.xxx.xxx'
(should be of the form 'package/Class',[Lpackage/Class;]' or '[[B')
in call to FindClass
 
5.0要求findclass路径必须以/拼接的,不能以.拼接()
(后来发现其他项目组用/拼接也没报错,似乎是和本机的java或者ndk版本有关,楼主用的是java1.8,ndk r9,如果有人知道麻烦吱一声~~)
 
4.NewStringUTF崩溃:
02-05 08:17:22.472: W/dalvikvm(1892): JNI WARNING: illegal start byte 0xb2
02-05 08:17:22.472: W/dalvikvm(1892):              string: '����'
02-05 08:17:22.472: W/dalvikvm(1892):              in Ldalvik/system/NativeStart;.run ()V (NewStringUTF)
02-05 08:17:22.533: I/dalvikvm(1892): "Thread-8" prio=5 tid=7 NATIVE
02-05 08:17:22.533: I/dalvikvm(1892):   | group="main" sCount=0 dsCount=0 s=N obj=0x44e56ec0 self=0x1216e0
02-05 08:17:22.533: I/dalvikvm(1892):   | schedstat=( 43332331 173790818 11 )
02-05 08:17:22.533: I/dalvikvm(1892):   at dalvik.system.NativeStart.run(Native Method)
02-05 08:17:22.533: E/dalvikvm(1892): VM aborting这个问题一般是输出的中文字符错误,可能是由于某些算法错误,把一个汉字截断了,在android上没找到这个字导致的。在5.0以前的版本好像不会报错
 
暂时记录这么多,如有遇到新的bug,会再扩展。