安卓开发常见错误原因及解决方法

做安卓开发一年半了,遇到过不少的问题,其中有些花了不少时间才得到解决,有些至今不知为何,也请高人指点迷津,为我拨云见日~~有错误也多多包涵,帮我纠正~~

1.更换安卓项目的库文件(即使库文件代码相同),运行工程挂掉。

    解决方法:将原来的app卸载再运行

 

2.R文件丢失:(一般是资源文件有错,特别是clean之后)

  原因:res文件夹的xml文件(不仅是layout,还包括其他)缺少了必要的属性或者添加了错误的属性。

 

3.导入library文件没有生成“privateli braries”.

  可能原因“v4包重复。(特别是在新项目导入基础库的时候)

 

4.断点调试 can not findDexFile:

解决方法:把断点全部去掉重新添加断点。

 

5.http的post或者patch请求如果显示请求类型错误

     解决方法:添加一个请求头:Content-Type,值为对应的请求体类型。

 

6.eclipse项目从svn检出后无法运行

   原因:项目提交不全(首次提交全部文件,以后可忽略classpath,bin等不需要提交的文件)

 

7.在写入缓存文件的操作中一定要加上读写外部文件的权限。

 

8.在一个水平LinearLayout中,有ButtonSpinnerButton放在Spinner的左边在执行ActivityfindviewById就会奔溃。换成右边就不会。原因未知。

 

9.android项目提交svn后如果改包名或者类名,提交文件会报Illegal target的错误。

   解决方法:彻底断开svn连接(删除svn元信息),重连之后,将原来包名或者类的东西删除。

 

 

对于已经受svn源代码管理的文件或者文件夹,若想修改名字,可以这样操作:

1.选中文件或者文件夹》右键》TortoiseSVN》改名。

2.SVN提交。

 

最简单的方案: 提交整个目录。

 

10.不同的布局文件的控件id尽量不要重复,不然在eclipse容易发生控件选取混乱。

 

11.使用evenbus记得要添加onEvent方法。

 

12.使用android.graphics.Color不可以画图表折线的颜色。(原因未知,只知道对应的数值为负数)

 

13.在类定义成员变量如下GlobalDataManager.getInstance().getSettingDataShowDay(getActivity())不能执行,原因可能是成员变量的定义先于构造函数执行,导致无法执行getActivity();

 

14.侧滑菜单有控件空指针,执行到返回主界面的fragment就奔溃。(原因未知,可能是slidingMenu的设计关联了主界面fragment??

 

15.在一个LinearLayout中有两个控件,都是设置height0dpweight1,其中一个可见一个为gone。在代码中设置不可见的为visible,不可见的仍然不可见。(可能是设置了权重就不可设置可见了。解决方案为动态设置布局控件的属性才为两个控件设置权重)

 

16.ScrollView的控件的height属性要为确切数字。(不然ScrollView不能为其安排确切的大小)

 

17.有时候修改xml布局文件后出现控件类型转换错误。

      解决方法:clean一下工程一般可以解决。

 

18.eclipse安卓工程创建没反应没提示。

      原因:在项目的创建目录有重复的工程名。

 

19.viewPagerfragmentfragmentfragment集合中删除,再添加fragmentfragment集合,结果viewPager仍然显示删掉的fragment

    原因:fragmentmanager将删掉的fragment保存起来,又重新显示出来。

 

 

20.CheckBoxListViewCheckBox要添加的属性:

                          android:clickable="false"  

                          android:focusable="false" 

 

ListView项被按下的时候,notifyDataSetChanged()刷新整个ListView,传入的参数刷新。

如果没有加这两属性,仅仅打钩CheckBox并没有点击到ListView。(抢了ListView的焦点)

 

 

 

21.eclipse复制一个xml布局文件后,在视图中修改其中一个文件控件的id,会同时修改到另一个文件对应控件的id

 

21.eclipse无法连接手机,出现Adb connection Error:远程主机强迫关闭了一个现有的连接 错误。

解决方法:DDMSrestart adb

 

22.如果计算机连接的是(可能是选择了自动获取ip)外网ip,则会导致svn无法连接内网服务器。

 

23.NetworkInfo activeInfo = manager.getActiveNetworkInfo(); 

  activeInfo.isAvailable();

(1)在广播onReceive()方法外activeInfo获取不到。

(2)在网络开启的时候可以使用,在网络关闭的时候程序挂掉(但放在判断语句中就可以用)。

原因未知。

 

24.在铺满Activity的ImageView中加一张尺寸足够的图片无法铺满?加渐变效果有异常跳动?

 原因未知。

 

25。尺寸比宽度小的按钮沾满屏幕宽度?

原因:图片的分辨率属于xhdpi,将图片移动到xhdpi文件夹就可以。

 

26。如果setContentView找不到新创建的layout文件,clean之后R文件丢失。

原因:可能是layout使用的资源文件的命名有问题,详细看console。

 

27.将Bitmap加载到ImageView失败。

  可能原因:开启了硬件加速。

  解决方法:在manifest中的application标签设置硬件加速标签:

android:hardwareAccelerated设置为false

 

28.ExpandableListView随意点击一级标题展开收起,会出现重影。

   解决办法:将ExpandableListView的高和宽设置为matchparent。(不要wrapcontent)


29.java.lang.UnsupportedOperationException: Can't convert to dimension:type=0x2

Xml文件布局属性有错误(互相间有冲突)。

 

30.一旦有控件被gone了,要注意RelativeLayout中以它为尺寸相对标准的控件的位置会受影响。

 

31.监听网络状态的变化时一次断开或者连接网络可能会接收到多次广播(产生若干个广播对象),所以加个标识符防止重复调用onReceive()

 

32.ListViewandroid:layout_height设置成wrap_content的话,adapter中的getview会执行两次,要让getview不执行两次只执行一次的话,可以将android:layout_height设置成fill_parent

 

33.使用系统自带的LocationManager,有些机型不能定位。原因:可能是一些机型没有注入谷歌的LocationManager需要的库。


 

34.ListView的高度如果设置wrapcontentAdaptergetView()会被调用多次,改为matchParent即可。原因未知。

 

35.eclipse的项目property中添加外部jar包,jar包会添加到reference library,在程序中可以引用里面的类,但是运行报错can not find class...。

解决方法:要将jar包复制到工程的lib文件夹中才可以导入private library,从而可以正常使用。

 

36.捕获到jsonException却显示jsonException对象时null

原因未知。

 

37.安卓工程编译成功,也显示运行在手机上了,但是没看到程序的界面。

原因:可能是没有标明要启动的Activity。

 

39.有的手机locationManager.getProviders(true);返回的定位方式有误。没开网络状态下仍返回有网络定位。

原因未知。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值