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+'即可。

坑已解决。

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