1.not attached to window manager
//判断Activity是否Destroy
protected boolean isDestroy(Activity activity) {
return activity == null || activity.isFinishing() ||
(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed());
}
————————————————
2.android.view.WindowManager
B
a
d
T
o
k
e
n
E
x
c
e
p
t
i
o
n
d
i
a
l
o
g
出
现
的
问
题
/
/
修
正
后
代
码
i
f
(
!
i
s
F
i
n
i
s
h
i
n
g
(
)
)
a
l
e
r
t
.
s
h
o
w
(
)
;
h
t
t
p
s
:
/
/
w
w
w
.
j
i
a
n
s
h
u
.
c
o
m
/
p
/
4
c
5
f
a
f
e
08
f
a
7
a
n
d
r
o
i
d
.
v
i
e
w
.
W
i
n
d
o
w
M
a
n
a
g
e
r
BadTokenException dialog出现的问题 //修正后代码if(!isFinishing()) { alert.show();} https://www.jianshu.com/p/4c5fafe08fa7 android.view.WindowManager
BadTokenExceptiondialog出现的问题//修正后代码if(!isFinishing())alert.show();https://www.jianshu.com/p/4c5fafe08fa7android.view.WindowManagerBadTokenException 7.1Toast问题的解决方案
解决toast的最好方案
https://github.com/PureWriter/ToastCompat
https://www.jianshu.com/p/ccfc5fa3130c
Android7.1.1Toast崩溃解决方案
3.android.database.sqlite.SQLiteDatabaseLockedException
数据库被锁
或者使用isDbLockedByOtherThreads方法判断数据库是否被锁住了
https://blog.csdn.net/u011386173/article/details/88558099
4. android.database.sqlite.SQLiteReadOnlyDatabaseException
数据库磁盘已满,就不能写了
getreaddatabase和getwritedatabase的区别
5.
android.database.sqlite.SQLiteFullException
database or disk is full (code 13)
com.yuedong.sport.run.step.StepDBHelper.void updateStepPeak(java.util.List)(SourceFile:356)
6.android.os.DeadObjectException异常
那么DeadObjectException什么意思呢,字面意思当前对象“死”了,也就是没有了呗!
出现这个问题其实大多源于当前程序异常崩溃,进程直接被杀死,但是as或者其他的软件未能捕获到bug 所以就爆出了这个DeadObjectException异常,所以出这个问题大多数是因为程序崩溃引起的
调用的对象不存在,因为它所在app进程不存在或进程崩溃,此时在底层回调时报错。
解决方案:
在调用对象之前,建议检查是否存在此进程。DeadObjectException 异常出现是因为app进程不存在或进程崩溃因此在底层回调时报错。
7.Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
错误分析:
Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的話,就需要开启一个新的的task,遇到这个异常,是因为使用了Context的startActivity方法。解决办法是,加一个flag。
代码:
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
解决办法:判断context的实例是啥?
————————————————
8.Fail to connect to camera service的几种原因和解决方法
1.之前对camera打开后,并没有释放掉。
解决对策就是调用下面的处理
camera.stopPreview();
camera.release();
camera = null;
2.权限问题
https://blog.csdn.net/zjd934784273/article/details/79485230
9.org.xmlpull.v1.XmlPullParserException
Binary XML file line #5: tag requires a ‘android:color’ attribute.
xml中的正确写法
一定需要添加颜色
11、android.content.res.Resources$NotFoundException
解决方案:
该异常表示找不到字符串资源 ID,检查引用的字符串资源 ID 是否在 R.java 文件中定义,或者检查传递的 ID 参数是否正确。
这种报错通常是因为将 int 等整型变量作为了参数传给了 View.setText() 调用,这种情况下该整型变量将被认为是一个资源ID号去资源列表中查找对应的资源,导致找不到对应资源错误。解决方法是把 int 型数据改成 String 类型,如 setText(Integer.toString(value)) 或 setText("" + value)。另外,建议在使用 inflate() 方法的时候,传入的布局资源最好使用 R.layout.xxx 来指定,这样可以降低出错的概率。
云测的问题分析
12.拉起失败
Error: Activity class {com.yuedong.sport/com.yuedong.sport.main.WelcomeActivity_} does not exist.
解决办法
1.AndroidMainfest.xml配置问题
2.myeclipse的程序缓存导致
原因:myeclipse的程序缓存导致,未找到MainActivity这个类,尤其会出现在修改过包名或者类名之后。因为有缓存所以对应就没找到这个类。
3.原因:因为android studio认为你的项目还是运行在手机上的,可是你把他卸载掉了,它自然不知道,所以才会出现这种情况。
4.相同得包名和类名冲突
12.Android之android.os.DeadObjectException原因,同上面
先判断进程是否存在。
13.找不到类和dex
E
AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn’t find class “android.taobao.atlas.startup.AtlasBridgeApplication” on path: DexPathList[[zip file “/system/framework/android.test.runner.jar”, zip file “/data/app/com.yuedong.sport-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.yuedong.sport-1, /vendor/lib, /system/lib]]
14.android process die的原因分析介绍
15.java.lang.NoSuchMethodError: android.app.ANRAppManager.dumpMessageHistory
原因分析:
Android是开源的系统,厂商获拿到源码后可以自由地定制和改造,当然,修改的过程可能带来一些不稳定的问题,会导致同样的代码,在一些特定的机型出现适配的问题
16.Adapter数据变化没有及时通知
adapter的内容变化了,但是你的ListView GridView RecycleView等并不知情。再继续操作内容时,会导致闪退
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes.
一旦ListView等绑定了数据源,数据源发生了数据的增删改等操作后,需要调用notifydatasetchanged()等方法及时通知数据的变化。
————————————————
17.SecurityException 安全异常
权限问题
18.即使注册了xml中的清单文件
ActivityNotFoundException