android开发中遇到的各种问题收集--不定期更新
以下问题都是自己在开发中亲身碰到的 ,在这里留个备份,方便下次查阅。
1、java.lang.IllegalStateException ,Cannot execute task: the task has already been executed (a task can be executed only once)
非法执行异常,大致是说这个任务已经执行过了,只能执行一个任务
解决:重新new一个任务执行即可。 之前是一开始就初始化任务类 ,在需要执行的地方再用实例对象execute执行
2、java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fozero.app.interfcalltest/com.fozero.app.interfcalltest.PhoneQueryActivity}: java.lang.NullPointerException
运行时异常,无法开启一个活动Activity 存在空异常
解决:找了很久发现是跳转的目标Activity中初始化UI组件id写错了
3、java.lang.IllegalStateException: ScrollView can host only one direct child
ScrollView内部只能有一个直接的子元素
解决:将所有的组件放入到Linearlayout布局中,再讲learnlayout布局包含在ScrollView中
4、android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
子线程更新UI 会发生该异常,解决方法是通过借助handle类来更新UI
5、android.content.res.Resources$NotFoundException: String resource ID #0xd7e
在比如TextView的setText()方法中向括号中填入了一个int类型的东西啊?我刚刚也遇到了这个问题,一顿好找,终于发现了。对于数字很多时候当做资源的id而不仅仅是数字,比如这里的setText()
TextView的.setText()方法有两个:
1、setText(int resid) 这个方法里面的参数是R.string.*,也就是你把字符串已经定义好的;
2、setText(CharSequence text) 这个方法里面的参数可以看做是字符串类型的,这种setText(""+count)方式相当于是把count强制转换成了字符串类型的,或者也可以setText(String.valueOf(count))进行转换,两者都是把int型转换成String型的。
6、Unable to resolve target 'android-XX
出现 “Unable to resolve target 'android-XX'”,解决办法进入你的android project跟目录,找到此文件 project.properties(或default.properties),找到target=android-XX出现此错是因为你的android环境跟此处不对应,那么,你只需要将此处的android版本改成你机器上配置的android版本即可,例如target=android-15
7、Unable to add window -- token null is not for an application
在activity中使用AlertDialog对话框时候出现的错误,这里context使用了application的context
导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。
8、android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
在调用Context.startActivity(intent)的时候报错 ,解决方法:
在前面加上intent.addFlags(FLAG_ACTIVITY_NEW_TASK)或者使用Activity.startActivity(intent)
相关文章
- 安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo
- Android开发之布局文件里实现OnClick事件关联处理方法
- Android开发之用双缓冲技术绘图
- Android开发学习之路--Notification之初体验
- Android studio 2.0--android增量更新的那些事
- Android之 ImageView android:src和tools:src的区别是什么?
- 从小白到音视频专家:最新Android音视频开发进阶指南开源分享~
- Android开发工程师文集-layout_weight讲解
- Android开发阅读文档资源
- 《Android游戏开发详解》一2.20 对象的更多实践——模拟一个色子
- 《Java和Android开发学习指南(第2版)》—— 2.8 操作符
- 《Android游戏开发详解》——第2章,第2.2节设置开发机器
- 《Android应用开发入门经典(第3版)》——第1.9节练习
- Android SQLite数据库之事务的学习
- Android判断App是否在前台运行
- android开发音乐播放器--Genres和Art album的获取
- Android 开发--CMakeList调用本地so文件
- Android Bitmap开发之旅--基本操作
- Android日志系统Logcat源代码简要分析
- Android ListView快速定位(四)
- android开发:Android 中自定义属性(attr.xml,TypedArray)的使用
- android 开发 解码gif图片,获取每帧bitmap
- android 开发解密时出现pad block corrupted 错误
- Android 开发需要注意的事项?
- 《OpenGL ES应用开发实践指南:Android卷》—— 2.7 小结
- [转发]在Visual Studio 2010/2012/2013/2015上使用C#开发Android/IOS安装包和操作步骤
- Android手机自动化测试工具有哪几种?
- Android开发(20)--RadioGroup的使用
- Android开发 ----------怎样真机调试?