安卓中一些常見異常總結(空指針,腳標越界)

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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章