1.Unable to get system library for the project

Eclipse ADT中各个工程飘红,出现Unable to get system library for the project,原因是Windows>Preferences>Android>SDK Location出错,应该是Eclipse配置信息丢失,默认到了Eclipse路径下的SDK,而我的SDK不在这个路径,重新Browser加载一下就可以了。


2.Exported service does not require permission

被外部访问的Service,在其AndroidManifest.xml中声明exported供外部调用:

android:exported="true"

外部通过packageName和className就可以调用了:

Intent intentRoute = new Intent();intentRoute.setClassName("com.tchip.route","com.tchip.route.service.RouteRecordService");startService(intentRoute);


3.设备首次开机Pico TTS概率性停止运行的问题

相关代码位置:
external/svox/pico/src/com/svox/pico/LangPackUninstaller.java

关键Log:

AndroidRuntime: java.lang.RuntimeException: Unable to start receiver com.svox.pico.LangPackUninstaller: java.lang.SecurityException: Neither user 10060 nor current process has android.permission.DELETE_PACKAGES.
原因是首次开机时,Pico TTS会根据时区删除一些语言包,然而没有DELETE_PACKAGES权限,抛出SecurityException安全异常。虽然已经声明DELETE_PACKAGES了权限,但是没有system的sharedUserId,添加就可以了:

android:sharedUserId="android.uid.system"

这样编译的时候,系统会使用platform.x509.pem和platform.pk8对生成的APK进行签名。


4.too many libraries when loading *.so

加载过多库遇到问题。以下是MTK的回复:

android 使用linker 来加载相关的lib 库。linker 对可加载的lib 库数量进行了限
制,在alps/bionic/linker.cpp 中定义了常量SO_MAX,目前MTK 默认是160, 即在一
个Process 中最多动态加载160个lib 库,超过即会提示too many libraries when
loading *.so , 常见的process 如mediaserver, system_server 等多服务集中的
process.
如果发现此类case, 首先要确认到底有加载哪些lib 库。可以adb shell cat
proc/{PID}/maps 查看当时已经加载的lib 库,确认哪些是必须的可以关闭。
针对手工使用dlopen 加载的lib 库,使用API 后,如果确认不再使用,可以dlclose
关闭lib 库.
如果该lib 在多处用到,难以关闭,可以考虑静态static 加载.
如果即无法关闭lib 库,又不想静态加载,那就手工将SO_MAX 调大,比如将SO_MAX
从 160 调大到192.


5.java.lang.UnsatisfiedLinkError: Native method not found

so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError: Native method not found问题,有可能是以下三种因素:
一、Jni方法头部大小写问题     在C++中,方法名:Java_com_XXX,而不是java_com_XXX。建议直接从生成的.h头文件直接复制方法名到C或者C++文件中。
二、C++文件问题        如果是C++文件(.cpp或者.cc),要使用extern "C" {   } 把本地方法括进去。
三、往Jni方法中传值问题         如,调用native方法sendSomeThing(Object object),如果传入的object为null,有可能会报上面错误。


6.Unable to execute dex: Multiple dex files define

在使用百度地图SDK的库由于不同的功能和版本各有不同,我们自己的应用更新同步时很容易遇到这个问题,两个jar包的内容有交集,导致冲突。但是有时候API更新,删掉旧jar导致一些功能不可用,新版也没有替代,这时候就需要我们做出取舍。选择新版本或旧版本的jar包,不能共用。


7.android.database.CursorWindowAllocationException

android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=669 (# cursors opened by this proc=669)

导致原因:没有及时关闭Cursor对象



更多相关文章

  1. android学习笔记---59_各种图形的使用介绍,android炫酷效果的实
  2. androidのadb input使用
  3. 【Android】解决Vivo及5.1低版本 webView适配问题
  4. android 开发中遇到的问题及解决方法
  5. ArcGis for Android(安卓)shp
  6. mybatisplus的坑 insert标签insert into select无参数问题的解决
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. QtAndroid详解(3):startActivity实战Andro
  2. Handler机制深入解析
  3. Android实现书籍翻页效果--扩展版
  4. 浅谈Android重力感应
  5. Android动画机制与使用技巧
  6. Android 自动化测试(5)
  7. Android判断网络状态是否断开+Android完
  8. Android中的RxJava
  9. android selector android:state_enabled
  10. Android监听器