1. 程式人生 > >Android之 編譯錯誤總結

Android之 編譯錯誤總結

檢視上方目錄或直接使用Ctrl+F直接搜尋你要查詢的問題部分關鍵字

直接使用Ctrl+F直接搜尋你要查詢的問題部分關鍵字或檢視上方目錄

如果有好的IDEA,期待與你的摩擦

Error:Execution failed for task ‘:app:processDebugResources’.>

Error:Execution failed for task ‘:app:processDebugResources’.>
com.android.ide.common.process.ProcessException: Failed to execute aapt
xml
可能出現無法識別的資原始檔錯誤, 就是資原始檔 裡面出錯了

獲取聯絡人 報空指標異常 null

因為刪除聯絡人,是把這個聯絡人的 contact_id 的值設定為 null 並不會去伺服器真正的刪除所以要判斷一下
contact_id 是否為空 if(!TextUtils.isEmpty(contact_id)){不為空才獲取聯絡人->程式碼}
#狀態選擇器錯誤
必須先把狀態處理的事件 寫在最前面, 預設的寫到最後一行

No active admin owned by uid 10047 for policy #3

Caused by: java.lang.SecurityException: No active admin owned by uid 10047 for policy #3
缺少超級管理員許可權

You need to use a Theme.AppCompat theme

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity

ActionBarActivity,它來自android.support.v7.app.ActionBarActivity。
所以就要使用與其配合的AppCompat的theme才行。

org.apache.http 包 不存在

android {
useLibrary ‘org.apache.http.legacy’
}

AAPT err(Facade for 747003580): libpng error: Not a PNG file

解決方案 >
這裡寫圖片描述

duplicate entry:android/support/v4/app/TaskStackBuilder$SupportParentable.class

一、Android Studio 引用多個jar、aar或者工程時出現
TransformException:Java.util.zip.ZipException: duplicate entry:android/support/v4/app/TaskStackBuilder$SupportParentable.class`.
原因:
在所新增的 jar 包或 aar 包中也引用了support-v4,與工程中引用的相沖突
具體由於專案中引用的 .aar 和引用的 slideDateTimerPicker.jar 以及專案本身,均用到了 support-v4 包 ,且版本可能不相同的情況下引發該問題。
解決方案: 把重複的第三方 jar包 刪掉
由於,一個module中只引用了一份相同的第三方包。故將 slideDateTimerPicker.jar 所依賴的 v4包 替換成專案中也包含 v4包的 .aar包(唯一性原則),
同時將build.grandle 中依賴的 compile ‘com.android.support:support-v4 :19.1.0’ 幹掉。

Ignoring InnerClasses attribute for an anonymous inner class

解決方案:

1.
lintOptions {
            ignoreWarnings true
        }
    2.
lintOptions {
   //lint 遇到 error 時繼續 構建
   abortOnError false
   //build release 版本 時 開啟lint 檢測
   checkReleaseBuilds false
   // 防止在釋出的時候出現因MissingTranslation導致Build Failed!
   disable 'MissingTranslation'
}

原因網上很多,Android Studio的程式碼規範比Eclipse要嚴格好多,所以很多第三方不是很好的支援Android Studio規範,
只需要在release時忽略這些警告。還有就是Android Studio的混淆規則也要嚴格很多,所以要完善混淆檔案

通知欄 卡死

頻繁更新Notification,導致通知欄卡死,而且檢視內容不更新了。網上找的資料說,
每次發通知的時候都重新new一個RemoteView,而不是使用同一個RemoteView……。

Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536

Android方法數不能超過65K的限制
需要在Project.proterty中配置一句話就Ok啦,
dex.force.jumbo=true
加入了這句話,確實可以讓你的應用通過編譯,但是在一些2.3系統的機器上很容易出現
INSTALL_FAILED_DEXOPT異常

No resource found that matches the given

此類錯誤一般因為所引用資源為高版本所有 》解決方法: 在專案中 右鍵 Open Module Settings 選擇modules 裡面的 compile sdk version 選擇一個高版本的