日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android java 指针异常处理,Android程序员日常开发中异常总结

發布時間:2024/3/12 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android java 指针异常处理,Android程序员日常开发中异常总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CaptainAndroid.png

Java異常

平時開發中遇到的java異常很多,因為引起原因一目了然,當然也有不好解決的,比如一個簡單的空指針異常你可能始終無法找到其為空的原因,甚至使用前還做了空判斷。也有可能一個類型強制轉換異常被報了出來可是你始終無法找到為什么出錯的原因。偶先幾率極低,只能catch的來了事。

NullPointerException空指針引用異常

ClassCastException 類型強制轉換異常

IllegalArgumentException 傳遞非法參數異常

ArithmeticException 算術運算異常

ArrayStoreException 向數組中存放與聲明類型不兼容對象異常

IndexOutOfBoundsException 下標越界異常

NegativeArraySizeException 創建一個大小為負數的數組錯誤異常

umberFormatException 數字格式異常

SecurityException 安全異常

10.UnsupportedOperationException 不支持的操作異常

CSDN上更多的java異常

Android自身特性異常

java.lang.NullPointerException

異常原因:另一種情況使用fragment時,fragment相關布局,必須給每個view設置id,否則通過activity獲得fragment的實例時會出現以上異常

解決方法:為fragment布局的每個view設置ID

Android中引入第三方Jar包的方法(Java.lang.NoClassDefFoundError解決辦法)

1、在工程下新建lib文件夾,將需要的第三方包拷貝進來。

2、將引用的第三方包,添加進工作的build path。選中jar包->Build Path

3、(關鍵的一步)將lib設為源文件夾。如果不設置,則程序編譯可以通過,但運行的時候,會報:選中lib文件夾->source code

java.lang.NoClassDefFoundError

Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解決辦法)

Caused by: android.os.TransactionTooLargeException

導致原因是:Binder傳輸的數據太大

如果Binder的參數或返回值太大,不適合的事務緩沖區,然后調用將失敗,并將被拋出TransactionTooLargeException。

解決方法:

不要將大量數據傳入Binder

android.database.CursorWindowAllocationException:Cursor window allocation of 2048 kb failed

導致原因:主要原因是因為使用了SimpleCursorAdapter類,其中的Cursor參數需要我們手動關閉,否則就會出現以上異常。

解決方法:cursor.close()

Excessive JNI global references錯誤的解決方案 GREF暴增

導致原因:vm對jni層的reference有個數限制,過多很造成VM aborting。因此每次在GREF增加到2000以上的時候就直接aborting了

解決方法:及時回收或關閉引用

android.view.WindowManager$BadTokenException: Unable to add window -- token

導致原因:使用getApplicationContext()獲得的Context,而必須使用Activity,因為只有一個Activity才能添加一個窗體。

解決方法:采用當前Activity的Context

android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file

導致原因:重復安裝軟件,導致Sqlite3打開數據庫異常

解決方法:卸載相應軟件,開關機,重新安裝該軟件,即可以解決相關異常。

java.util.ConcurrentModificationException(并發操作異常)

異常原因:ArrayList是非線程安全的,當同時在遍歷和修改ArrayList時,就會出現該異常

解決方法:使用Vector替換ArrayList,Vector是線程安全的。Vector的缺點:大量數據操作時,由于線程安全,性能比ArrayList低

so庫文件異常(JNI層異常)

異常原因:在Android應用層開發中,我們經常會使用so庫文件。當so庫文件發生異常時,我們只能在adb log中發現fatal libc這樣的異常信息,僅此而已,并不能發現異常調用的邏輯關系, 這是我們就需要查看so 庫異常Log信息。在Android手機的/data/tombstones 的路徑下就包含了so庫文件發生異常的Log信息,開發者可以查看該路徑下載Log文件發現異常調用的邏輯關系。

謝謝大家閱讀,如有幫助,來個喜歡或者關注吧!

本文作者:Anderson/Jerey_Jobs

總結

以上是生活随笔為你收集整理的android java 指针异常处理,Android程序员日常开发中异常总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。