Android常见问题笔记

将遇到的问题记录下来才会减少错误的增长空间

【持续更新】
1. layout.findViewById();用findViewById找到资源时,需要注意资源所属的View
2. 使用线程Thread时,若要使用标志位flag来控制线程的停止,则需要将flag设置为全局变量(若为局部变量,则会要求声明为final类型)
3. 当新定义了一个View类后,发现无法在XML中引用或引用出错,且确保自定义无错的情况下,多半是编译器的缓存问题【只要重启编译器就好】
4. 对于git管理的项目,若是解决了冲突之后仍然提示冲突,则只需右键工程->Team->Add to Index即可
5. 使用Http协议访问网络时,当用浏览器直接访问网址成功而httpclient连接却失败时,很有可能是url有错(如多了一个“.”浏览器会自动忽略的)

一定要提高代码的复用性

6.访问网络Debug时传入的数据正确,然而服务端接收到的数据有误:【使用Volley框架时】
发现:传递的数据时long类型时就会导致接收的数据不一样,所以只能传递int类型

7.程序运行不了:INSTALL_FAILED_DEXOPT
可能是测试用的真机内存不够

8.资源文件引入不到,可能是R的引包错误
或者含有重名id的情况

9. getString(R.string.title_myinfor)代码中引入文字资源

10.一些变量无法传输时可加(Serializable)表序列化

11. layout_marginRight失效

1、如果LinearLayout中使用android:layout_marginRight不起作用,通过测试原来在android2.x中, 如果一个控件中有android:layout_gravity属性,就会出现android:layout_marginRight没有应有的效果,而是把左边距加到右边距上去,直接去掉android:layout_gravity这个属性可以解决
2、如果是在RelativeLayout中不起作用,请在这个代码前加了一条android:layout_alignParentRight=”true”就可以
3、如果是ScrollView中的LinearLayout 中设置margin 类的属性无效, 解决方法LinearLayout中加android:layout_gravity=”top” 属性就ok。

12. edittext.getText().equals()无效
加个toString()即可,即edittext.getText().toString.equals()。

扫描二维码关注公众号,回复: 1541697 查看本文章

13. 非Activity类中调用startActivityForResult()

如在Adapter类中调用此方法,使用从Activity类中传入的Context则发现无法调用startActivityForResult()方法。解决方法是将Activity类传入的Context类改为Activity类,Result的返回在原Activity类中的onActivityResult()中处理。

14. ImageButton若声明为Button则在findID和setOnClickLinstaner时会报错,一定要注意类型一致

15.强制退出App方法无效(使用下面的方法即可)

int currentVersion = android.os.Build.VERSION.SDK_INT; 
if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) { 
    Intent startMain = new Intent(Intent.ACTION_MAIN); 
    startMain.addCategory(Intent.CATEGORY_HOME); 
    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(startMain); 
    System.exit(0); 
} else {// android2.1 
    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
    am.restartPackage(getPackageName()); 
}

16. Glide加载圆形头像。第一次无法显示加载的头像图片

Glide加载圆形头像CircleImageView时,如果设置了加载前的默认图片,则第一次只显示默认图片,第二次加载时才会显示网络加载的图片。
解决方法:加.dontAnimate()方法,不使用Glide默认动画即可。例如:
Glide.with(this).load(url)
.dontAnimate()
.placeholder(R.drawable.ic_launcher)
.centerCrop()
.into(userAvatarIv);

猜你喜欢

转载自blog.csdn.net/kiddingboy_wjj/article/details/47051197