您的位置:首页 > 移动开发 > Android开发

Android中的异常

2015-10-14 08:43 579 查看
1, 常见的nullpointerexception,在调式程序中最常见是空指针异常了,这个是一般是对象实例化为null, 比如在组件的实例化和class对象实例化的时候, 声明 TextView mTestTV; 没有findViewById,或者 new对象为null。

2,IllegalArgumentException非法参数,很多方法参数的数据类型不一致或者返回的数据类型不一致的异常。

3,IndexOutOfBoundsException下标越界,这个一般是出现在数组和集合中,循环数组、集合的时候,需要判断是否为空,若为空会报空指针,上面1中提到的错误。若数组或者集合的个数小于遍历的大小则会下标越界。

4,ClassCastException:数据类型转换异常 如果前台应用程序缺乏相关的控制,如用户在输入日期的时候只输入月、日信息,而没有年份的信息。此时应用程序在进行数据类型转换的时候,就会出现异常。根据笔者的经验,数据类型转换异常在应用程序开发中使一个出现的比较多的异常,也是一个比较低级的异常。

5,NumberFormatException:字符串转换为数字类型时抛出的异常

6,SQLException:操作数据库异常类,android中的sqlite创建数据库字段需要id 字段之间需要逗号隔开。

7,IllegalStateException非法状态

8,ClassNotFoundException 指定class找不到,这个在android中也是很常见的,需要在eclipse项目工作空间中的路径和类引用。

9,ArithmeticException  这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常

10,IllegalAccessException 这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常

11,StackOverflowError 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误

12,OutOfMemoryError 内存不知时导致的异常,一般android中的listview加载图片,没有及时回收,加载过大图片,数据库没close,线程死循环。

android常见错误

1、Unable to resolve target 'android-2' 安装低版本的api,再default.properties 这个文件中把target=android-2 改成 target=android-7终于就没有问题了。

2、Invalid start tag LinearLayout main.xml放错文件夹了,应该在\res\layout下。

3、INSTALL_FAILED_INSUFFICIENT_STORAGE 原因:SD卡内存容量不够 法一:在下图的“Additional Emulator Command Line Options”中加上“-partition-size 128” 法二:启动模拟器,然后进入菜单 settings->applications->mange applications-> select the application->select "unistall". 这样就能彻底删除了,然后再重新安装这个apk就没问题了

4、No Space left on device 清除C:\Users\Lanyan\AppData\Local\Temp\AndroidEmulator文件夹下的tmp文件 参考资料:http://hi.baidu.com/boderboder/blog/item/af2a81de31dc3f235982ddd8.html

5、Could not open the editor: Resource is out of sync with the file system 当右击default.properties打开时,出现下图错误: 解决方法:右击工程,Refresh一下就好了。 原因:Usually happens when some files are edited outside of eclipse。

6、Invalid project description 网上的解决方法是:在项目根目录下的.project文件中,找到<name>cms6.0</name> 将cms6.0改为和项目目录名称一致。 解决方法:我已经将该工程导入Eclipse,一个工程不能重复导入两次;或者把你的文件夹考的别的目录下然后重新导入即可。 原因:有两份相同的AndroidManifest.xml的描述性文件。

7、java.lang.SecurityException: Requires VIBRATE permission 解决方法:在AndroidManifest.xml中加上一句 “<uses-permission android:name="android.permission.VIBRATE"></uses-permission>” 原因:权限问题导致,因为使用了震动功能。

8、Activity not started, its current task has been brought to the front 解决方法:在Eclipse中,“project”-->“clean…” 原因:模拟器中还有东西在运行,也就是你要运行的activity已经有一个在模拟器中运行了不要以为你的模拟器退出到桌面了就没有东西在跑了。在你调试的时候异常关闭的程序有可能就有activity在运行。

9、ArrayAdapter requires the resource ID to be a TextView 问题描述:java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView而 adapt = new ArrayAdapter <String>(this, R.layout.main, infoList); 这句中布局main中的布局可能不是TextView对象。 adapt
= new ArrayAdapter <String>(A1, A2, A3); 参数A2是一个“resource ID to be a TextView 解决方法:A2改为:android.R.layout.simple_spinner_dropdown_item 10、R.java文件突然不见了 解决方法:右键项目-->Build Project 原因:res/drawable下的文件名只能是在a~z、0~9之间字符组成。

10、ScrollView can host only one direct child。 解决方法:需要把所有的子元素放到一个LinearLayout内部或RelativeLayout等其他布局方式。 原因:主要是ScrollView内部只能有一个子元素,即不能并列两个子元素。

11、emulator: ERROR: the user data image is used by another emulator. aborting 没有正常关闭导致的,删除android-sdk-windows\.android\avd\对于版本\下的以.lock结尾的文件夹就行。 原因:.lock是加锁,如果程序崩溃等原因导致无法清除这些以.lock结尾的文件夹,就会出现这个问题,也就是这个avd的锁没有被释放,导致avd manager以为这个avd正在使用当中。

12、* daemon not running. starting it now * ADB server didn't ACK * failed to start daemon * 已经确认adb.exe的路径没有问题,重启了两次模拟器和eclipse还是不行,上网查了下资料~ 解决办法: (1)查看任务管理器,关闭所有adb.exe;(2)重启eclipse即可

13、android.content.res.resources notfoundexception 在Manifest.xml中加上:<uses-sdk android:minSdkVersion="5"/>,或者将5改成6,其他值也一样加1

14、Unable to instantiate activity ComponentInfo 解决方案:更改activity android:name="Acitivity"为activity android:name=".Acitivity" 原因:AndroidManifest.xml配置activity的路径时出错了

15、工程名上有红色感叹号 解决方案:右键项目名称BuildPath--->ConfigureBuildPaht...中,然后上面有几个选项卡找到Libraries中出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。 问题原因:工程中classpath中指向的包路径错误。 解释:用myeclipse新建web工程,在工程目录下会生成一个.classpath配置文件,里面是你工程里面引用的jar的配置。这个.classpath对你的web工程没有什么影响,其实是给myeclipse识别的。你说的这种情况是因为.classpath文件里面配置引用了某个jar,但是实际上你的lib里面并没有这个jar所以才会有红色的提示。你不用拿.classpath文件和你的jar一个个去找,你现在打开MyEclipse右键单击你的web工程,找到BuildPath-->ConfigureBuildPaht...-->然后上面有几个选项卡找到Libraries。这里看到的就是你工程里面引用的所有的jar,看看是不是在某个jar图标上有个很小的***的感叹号?如果有的话就没错了,先选中这个jar,点击右边的Remove-->点击OK等待几秒,现在web工程上面的红色XX是不是没有了,哈哈。解释一下:***的感叹号的jar,表示.classpath配置文件引用了jar,但是实际上lib里面没有这个jar。


16、使用Intent时出现另一个活动未发现的异常(ActivityNotFoundException) 解决方案:在AndroidManifest.xml中再加一个<activity android:name=".Filelist" android:label="@string/app_name" />

17、Fail to connect to camera service 在AndroidManifest.xml中添加<uses-permission android:name="android.permission.CAMERA" /> 如果还是不行 @Override public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

mCamera.stopPreview();

mCamera.release();//加上这句,就OK!

mCamera=null; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: