安卓中一些常见异常总结(空指针,脚标越界)

1.脚标越界异常(indexOutOfException):
(1)image.setImageResource(list.get(position)%list.size());
角标是5,长度也是5
正解:image.setImageResource(list.get(position%list.size()));
(2)for(int i=0;i<12;i++)或for(int i=0;i<images.length+1;i++)
角标和长度一样,
正解:for(int i=0;i<images.length;i++)
2:没有找到activity异常(NotFoundActivityException):
原因:没有在清单文件中注册
解决办法:在清单文件中注册
3,当包名起的名字与将要导入的文件夹的包名一致时,文件夹将无法导入
解决办法:在清单文件下修改包名,并在mainActivity.java中重新导入R文件的包
4,空指针异常:
原因:想要找到控件在本类的布局中不存在
View view=View.inflate(getApplicationContext(), R.layout.activity_adapter, null);
ImageView image = (ImageView) findViewById(R.id.image);
正解:
View view=View.inflate(getApplicationContext(), R.layout.activity_adapter, null);
ImageView image = (ImageView) view .findViewById(R.id.image);
5,如果在setContentView中加载布局时找不到本类的布局,是R文件的包导错了,重新导包即可
6,跳转时没有跳转到想要跳转的界面,直接退出的原因是没有写startActivity(intnet)方法
7,runTimeException运行时异常:
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.activity_home);
二者的位置错误
8,使用switch循环语句完成一个页面跳转到另一个界面应该退出,但是没有退出,反而跳转到第三个界面了,注意switch后的传参,不同情境需要的参数不同,传出会不生效
switch(position){
                    case 0:
                        Intent intent = new Intent(HomeActivity.this, PhoneActivity.class);
                        intent.putExtra("id", images[position]);
                        startActivity(intent);    
                        break;
                    case 1:
                        Intent intent1 = new Intent(HomeActivity.this, SmsActivity.class);
                        intent1.putExtra("id", images[position]);
                        startActivity(intent1);
                        break;
原因:没有写break,所以第一个结果页没有跳出,仍然会被执行
9,标识符自定义名字写错或方法用错都会出现空指针异常
10,sp已经声明初始化了,但是在这里不能省略,因为这句是在activity中拿到SharedPreferences这个对象,虽然找到了,但是在后面没有生效,所以会报空指针异常:sp=this.getSharedPreferences("config", MODE_PRIVATE);
11,非法状态异常(IllegalStateException):在直接用xml文件设置按钮点击事件方法时,设置点击事件时与xml文件的方法名不一致时会报该异常
12,网络联机错误(SocketException):没有设置权限
13,在新闻客户端中找不到setImage的方法是没有把开源的包导进来
14,HttpClient请求中出现乱码是编码不对应的问题
BufferedReader in = new BufferedReader(new InputStreamReader(is, "GBK"));
服务器端是GBK编码格式,二输入utf-8则会出现乱码
解析不出来是没有把地址传入或没有设置网络权限
HttpPost hp = new HttpPost(path);
必须写成这样,不能少=,否则登陆失败
String data="name="+URLEncoder.encode(name)+"&pass="+pass;
15,viewPager和Fragment获取管理器时要选择support管理器
this.getSupportFragmentManager();
16,fragment运行后不显示界面,是忘记提交了commit
FragmentManager fm = this.getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fl_container, f);
        ft.commit();
17,空指针异常
如果使用BasicActivity这个公共类的话要注意方法的顺序,否则就会出现图片集合空指针的异常
    initLoadData();//加载数据
    initSetView();//填充数据
这是正确的顺序
18,如果在制作启动页时会出现一个1秒的空白页,需要在该Activity的主题进行处理
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent">
        <activity
19,空指针异常
在getView方法中忘记创建viewHolder对象
viewHolder = new ViewHolder();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值