1. 程式人生 > >安卓開發常見錯誤原因及解決方法

安卓開發常見錯誤原因及解決方法

做安卓開發一年半了,遇到過不少的問題,其中有些花了不少時間才得到解決,有些至今不知為何,也請高人指點迷津,為我撥雲見日~~有錯誤也多多包涵,幫我糾正~~

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

解決方法: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.更換安卓專案的庫檔案(即使庫檔案程

服務器出現 HTTP 400、404、500、502 錯誤原因解決方法

服務器出現 http 400、404基本涵蓋了所有問題HTTP 400 – 請求無效HTTP 401.1 – 未授權:登錄失敗HTTP 401.2 – 未授權:服務器配置問題導致登錄失敗HTTP 401.3 – ACL 禁止訪問資源HTTP 401.4 – 未授權:授權被篩選器拒絕HTTP 401.5 – 未

C++的error C2668: 'pow' : ambiguous call to overloaded function錯誤原因解決方法

1、錯誤程式碼 #include <iostream> #include <cmath> using namespace std; int main() { float a; a = pow(10, 2); cout<<"pow(10,2) =

關於iOS分享引用"libSocialQQ.a(UMSocialQQHandler.o)"報i386錯誤原因解決方法

應用中整合QQ分享,匯入libSocialQQ.a庫,真機執行沒有問題,但是不少同學在模擬器上執行時,往往會報"libSocialQQ.a(UMSocialQQHandler.o)"i386錯誤;相信原因大家都通過網上查閱資料得知,這是因為最新版本的QQ SDK不再支援I386框架,但是真機執行沒有

常見錯誤分析解決方法

Such as :compile block ----Con_appError:make[1]: *** No rule to make target `Hai_Extern.obj', needed by `build/GXQ26_07B/gprs/MT6226o/lib/conn_app.lib'.  S

Linux環境下gcc靜態編譯/usr/bin/ld: cannot find -lc錯誤原因解決方法 原因

原因: 一般出現這個問題的時候,Makefile中肯定有-static選項。這其實是靜態連結時沒有找到libc.a。 解決方案: 需要安裝glibc-static.xxx.rpm,如glibc-static-2.12-1.107.el6_4.2.i686.rpm,或是yum install gli

應用安裝錯誤:INSTALL_FAILED_MEDIA_UNAVAILABLE 解決方法

今天工作中,在測試一臺機子的時候,海信的手機,安裝自己的產品怎麼都裝不上去,然後在網上找了好多方法,現在整理一下: 方法一: 這個問題的原因為Android應用安裝位置當前不可用。而Android應用安裝位置有手機rom內和sdcard兩種。由於Android裝置沒有

“adb不是內部或外部命令,也不是可執行的應用程式”錯誤原因解決方法

用SQLite時,可能會出現這樣的錯誤。 原因可能是環境變數PATH沒有配置或配置不正確。應該把adb.exe 所在目錄加入到PATH環境變數。例如:C:\Program Files\android-sdk-windows\tools   開啟cmd,進入adb.exe 所

Mysql常見錯誤提示解決方法

130 :檔案格式不正確。(還不是很清楚錯誤的狀況) 145 :檔案無法開啟。1005:建立表失敗。1006:建立資料庫失敗。 1007:資料庫已存在,建立資料庫失敗。 1008:資料庫不存在,刪除資料庫失敗。 1009:不能刪除資料庫檔案導致刪除資料

php:Illegal offset type in XXX錯誤原因解決方法

php提示錯誤:Illegal offset type in XXX,導致這個錯誤的原因是不能使用例項化的物件來作為陣列的索引,請檢查陣列變數的鍵名是否使用了例項化的物件變數或陣列。 我遇到的錯誤就是因為呼叫陣列的時候,陣列變數的鍵名使用了陣列。 程式碼如下: //格式

伺服器出現HTTP400、401、402、403錯誤原因解決方法

HTTP 400 - 請求無效 HTTP 401.1 - 未授權:登入失敗 HTTP 401.2 - 未授權:伺服器配置問題導致登入失敗 HTTP 401.3 - ACL 禁止訪問資源 HTTP 401.4 - 未授權:授權被篩選器拒絕 HTTP 401.5 - 未授權:I

java.lang.IllegalStateException 錯誤原因解決方法小記

java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

手機提示安裝包解析失敗的原因解決方法

4、記憶體卡問題手機記憶體卡的預設格式是FAT,如果你使用電腦將記憶體卡進行格式化時,選擇FAT32的選項,那麼這也可能導致程式安裝處問題。當然還有另外一種可能,就是記憶體卡本身有問題,這個大家試試更換一張記憶體卡試試。 如果不是記憶體卡損壞導致程式無法解析的話,大家可以在手機上對記憶體卡進行格式化(本人親測

LoadRunner 常見錯誤收集解決方案

上一個 exc nic win iss 溢出 red sage sed 一. This Vuser already started a transaction with the same name, and has not yet processed the corresp

Nginx 502 Bad Gateway 錯誤原因解決方法

nginx 錯誤 connect() to unix:/var/run/php5-fpm.sock failed Nginx 502 Bad Gateway 的錯誤已經遇到好幾次了,今天處理以下,在這裡記錄下解決方法: 首先查詢nginx的錯誤日誌檔案, 目錄為/var/log/nginx/

C++三角函式用法錯誤error C2668: 'tan' : ambiguous call to overloaded function原因解決方法

注意tan、atan等三角函式不能接受整數,如:tan(1)會報錯“error C2668: 'tan' : ambiguous call to overloaded function” ,改為浮點型即可正確計算。 1、錯誤程式碼如下: #include <iostream>

【轉】【MySQL】Mysql併發時經典常見的死鎖原因解決方法

https://www.cnblogs.com/zejin2008/p/5262751.html   1.    mysql都有什麼鎖   MySQL有三種鎖的級別:頁級、表級、行級。 表級鎖:開銷小,加鎖快;不會出現死

java.util.NoSuchElementException錯誤原因解決方案

1.原因:沒有控制語句導致的迭代器的越界,使得map中的資料無法傳入reduce,從而無法把結果傳入目標檔案中。 在進行Mapreduce例項——WordCount實驗時遇到的錯誤,開始以為是lib包匯入和讀取原始檔格式的問題,後來無論怎麼修改都會報這個錯誤,報錯如下: java.lang.Excepti

java.lang.NullPointerException錯誤原因解決思路

本機環境是在myeclipse2017報錯 錯誤資訊可能是這樣,很多時候碰到這樣錯誤,不知道該怎麼入手,下面是報空指向異常的其中一種情況 十一月 27, 2018 11:13:08 上午 org.apache.catalina.core.StandardWrapperValve invoke

Nginx 499錯誤原因解決方法

Nginx 499錯誤的原因及解決方法 499錯誤是什麼?讓我們看看NGINX的原始碼中的定義: ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ ngx_string(ngx_http_error_4