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)

时间: 2024-08-10 15:11:28

android开发中遇到的各种问题收集--不定期更新的相关文章

Linux以及Android开发中的小技巧和长繁命令记录收集

不断更新收集中.... 2014071743 ssh以nx_guest的身份登录到172.24.221.137,然后在172.24.221.137与172.24.61.252的8080端口建立网络连接,同时创建端口为5678的本地代理服务 ssh -C -f -N -o 'TCPKeepAlive=yes' -L 5678:172.24.61.252:8080 [email protected] 反编译android下的二进制程序 ./prebuilts/gcc/linux-x86/arm/ar

Android开发中,那些让你觉得相见恨晚的方法、类或接口

本篇文章内容提取自知乎android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常见.大多数的函数自己还是见过的,这里记录一下备忘.同时呢,也推荐一个github项目,里面记录了自己日常开发中见过的比较有用的东西开发中常用的工具.链接 Throwable类中的getStackTrace()方法,根据这个方法可以得到函数的逐层调用地址,其返回值为StackTraceElement[],而在StackTraceElement类中有四个方法g

android开发中碰到的三个小问题

Android开发中注意到的几个问题 1.  关于actionbar 初始化配置actionbar,getactionbar经常为null,原因是因为在源码或者布局文件中设置了全屏显示的缘故,不设置全屏显示就不会有问题. 2.  关于textview Textview默认是没有焦点的,因此不可能有点击事件,也无法直接实现背景的selector.通过设置android:clickable = true;就可以了,这一点与Button有很大的不同 3.  关于sourcinsight中的php代码.

android开发中监听器的三种实现方法(OnClickListener)

Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般以On******Llistener命名,实现该接口需要复写相应的on****(View v)方法(如onClick(View v)). 二.监听器的三种实现方法 (以OnClickListener为例) 方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener

android开发中,两个按下手机实体返回键,两个Activity反复来回跳转的问题

android开发中,对于用intent实现跳转的Ativity,有时候按下手机的返回键时,两个Activity之间会多次相互跳转,始终退出不了程序的情况.这是由于从Activity  A跳转到Activity  B时,A被压入Activity栈中:当从B返回时,默认又重新创建了一个Activity A对象,这样一来就有了多个Activity A对象.所以造成了无法退出情况. 解决办法是:在AndroidManifest.xml文件中找到Activity A项,在其属性中加入  android:

Android开发中常用的ListView列表的优化方式ViewHolder

在Android开发中难免会遇到大量的数据加载到ListView中进行显示, 然后其中最重要的数据传递桥梁Adapter适配器是常用的,随着市场的需 求变化ListView'条目中的内容是越来越多这就需要程序员来自定义适配器, 而关键的就是适配器的优化问题,适配器没有优化好往往就会造成OOM (内存溢出)或者是滑动卡顿之类的问题,接下来我就给大家介绍一种常 用的Adapter优化方法 1 /** 2 * list View的适配器 3 */ 4 class Adapter extends Bas

Builder模式详解及其在Android开发中的应用

一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比如说在一些常用的第三方库中也随处可见其踪迹,比如说一些常用的网络请求库如OkHttp或者是retrofit,又或者是图片加载库Glide中也不缺乏它的应用. 为什么Builder模式在Android或是Java开发中这么火呢?因为它相较于构造函数或者是Get/Set方法,它的灵活性和封装性上都比较有

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>