本文记录一下遇到的问题,持续更新。
1.java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/com.ant.sqlite3/databases/mydata.db
产生原因:
假如你有A、B两个异步线程操作sqlite数据库。A是读取,B是写入,当A完成读的时候调用close(),而B在这时正在执行写的方法就会出现下面的异常。有人说去掉单例模式可以解决这个问题,但你不能忘记你在怎么单例使用的数据库还是同一个,避免不了。
解决办法:
如果你在一定的时间内需要重复的操作数据库,那么不要调用close()方法,关闭游标就可以了。在你Activity注销或者真正不再需要的时候调用数据库的colse()方法.
假如你有A、B两个异步线程操作sqlite数据库。A是读取,B是写入,当A完成读的时候调用close(),而B在这时正在执行写的方法就会出现下面的异常。有人说去掉单例模式可以解决这个问题,但你不能忘记你在怎么单例使用的数据库还是同一个,避免不了。
解决办法:
如果你在一定的时间内需要重复的操作数据库,那么不要调用close()方法,关闭游标就可以了。在你Activity注销或者真正不再需要的时候调用数据库的colse()方法.
2.使用TabLayout发生的错误:
Failed resolution of: Landroid/support/v7/widget/TintManager;
design包的版本是24.0.0,而recyclerview的版本是24.2.0,两个包版本不一致,导致报错,改成一致就可以了。
3. You cannot start a load for a destroyed activity
使用Glide出错
归根结底都是因为我们传入了一个已经销毁的Activity或者是一个空的Context ,Fragment 挂载的Activity为空导致的
http://blog.csdn.net/loners_/article/details/73521968
4.android studio关于真机调试DDMS中的data文件夹打不开的解决方法
http://blog.csdn.net/q394895302/article/details/52796883
5.百度地图:定位不准确
option.setCoorType("bd09ll");
6.周边搜索出错
设置pageNum为1,表示第二页数据,如果搜索逸特图文快印,返回的near结果就一条,当然第二页里面看不到
7.fragment 嵌套 fragment 解决 getFragmentManager() 已经存在的问题
主要是把 getFragmentManager() 方法 换成 getChildFragmentManager();因为你已经在fragment里面了,不能再次得到到外层的manager,只能用孩子的manager。
8.Fragment的可见再加载的方法(真正的Fragment的OnResume和OnPause)
- public void setUserVisibleHint(boolean isVisibleToUser) {
- super.setUserVisibleHint(isVisibleToUser);
- if (isVisibleToUser) {
- //相当于Fragment的onResume
- } else {
- //相当于Fragment的onPause
- }
- }
http://blog.csdn.net/jasoncol_521/article/details/24973565
9.android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 0
android中数据库处理使用cursor时,游标不是放在为0的下标,而是放在为-1的下标处开始的。
也就是说返回给cursor查询结果时,不能够马上从cursor中提取值。
也就是说返回给cursor查询结果时,不能够马上从cursor中提取值。
10.APP接入QQ登陆功能报错“该应用非官方正版应用,请到......100044”的几种错误
App没有上线,这种情况下申请的是“个人开发者”,必须确保你创建App所用的QQ帐号和你测试时使用的登录QQ号一致!如果App是公司的企业号创建的,可能是因为你的QQ号没有测试权限,请找到创建的人为你的QQ号添加测试权限。
App已上线,如果你是用IDE导出的包进行登陆测试,出现这种情况很大情况是 APP_ID 出错,或者是导出包时用的签名不一致,这自己找问题,签名要妥善保管,不然更换签名还要找客服操作。
11..IndexOutOfBoundsException: Index: 2, Size: 2
sqlite 多线程读写
http://blog.csdn.net/fateee/article/details/45311323
12.百度地图定位不显示内容,一片蓝
原因是没开启权限的话,坐标为(0,0),经度
0和纬度
0的交点,大致位于非洲西部的几内亚湾,位于海上,所以是蓝色。设置targetVersion>=23,那么运行到6.0及以上设备时,默认所有权限都不开启,必须动态requestPermission,这里需要位置权限,默认没开启导致此结果。
13.关于百度SDK的返回错误-"PERMISSION UNFINISHED"
PERMISSION-UNFINISHED是因为鉴权还未完成,直接使用相关的方法,比如直接将信息检索写在onCreate方法中,你可以写在别的地方试试,比如click事件中。SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中
14.Could not resolve com.android.support.constraint:constraint-layout:1.1.1.
打开Project Structure Settings查看默认配置,发现关键配置为空,于是关键的配置如SDK, Compile Tools, JDK source和target均选择最新版本
编译还是不通过。查看Settings配置gradle,使用Android Studio默认的gradle版本,并且不勾选offline work,使用网络下载dependency依赖配置。
这样之后我已经解决了,对于还有错误的朋友,就抱歉了。
14.Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.
可以用Build->Rebuild Project解决,但这个方法只是临时的,重新打开项目还是会报错
另一种方法是在app下的build.gradle文件中的dependences {}中添加如下代码:
androidTestCompile('com.android.support:support-annotations:26.1.0') {
force = true
}
15.微信分享出错:MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
这是因为微信分享图片有大小限制,最大32k,只要进行图片压缩就好了。