AS中創建低版本工程

先說說現象吧,奇葩之處就在於報錯的位置位於SDK內而不在我們創建的工程中,不過原因一般就是改了compileSdkVersion或者導入別人的工程時導致的,以下是詳細原因和解決方案

報錯位置:

諸如以下的錯誤

...\build\intermediates\res\merged\debug\values-v23\values-v23.xml

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

問題是該錯誤均存在於Android SDK中,查看該錯誤應該是佈局文件引起的,推測原因是將compileSdkVersion修改導致一些之前版本的樣式不可用導致的。

那麼,修復此問題理論上可以通過將SDK中values-v23部分刪除並ReBuild工程解決,

即以下辦法:

1.修改build.gradle中compileSdkVersion版本,從23+修改爲22+,後報錯

2.WARNING:以下操作請預先備份;

進入Android SDK\extras\android\m2repository\com\android\support\appcompat-v7目錄下刪除23+所有目錄;

刪除maven-metadata.xml中23.0.0以上所有部分;

回到Android Studio,Clean工程,ReBuild工程,解決。

不過此方法並不好,原因是此修改方法影響了SDK,會導致其他程序出現問題,缺少values-v23樣式

那麼更好的解決辦法:

在build.gradle的dependencies{}中修改compile 'com.android.support:appcompat-v7:23.2.1'爲compile 'com.android.support:appcompat-v7:22.0.0+'即可。

坑已解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章