我正在使用Android Studio 2.2.2,并且出现了清单合并错误,以下是错误消息
合并错误:
错误:uses-sdk:minSdkVersion 9不能小于库/path/to/my/project/app/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable中声明的版本11 /24.1.1/AndroidManifest.xml
建议:使用工具:overrideLibrary =“android.support.graphics.drawable.animated”强制使用
Android Studio不允许我运行(CTRL + R)我的应用程序,因为没有默认活动。但默认活动是在产品风格的清单中声明的。
当我运行./gradlew app:dependencies
时,唯一出现的animated-vector-drawable
就在这里;
+--- com.android.support:appcompat-v7:24.1.1
| +--- com.android.support:animated-vector-drawable:24.1.1
| | \--- com.android.support:support-vector-drawable:24.1.1
| | \--- com.android.support:support-v4:24.1.1
| | \--- com.android.support:support-annotations:24.1.1
我认为这应该没问题,因为appcompat-v7
的min sdk版本是7。
构建命令./gradlew app:assembleFlavor1Debug
工作正常。它成功构建了apk文件,当我从Android Studio中的APK Analyzer打开它并看到AndroidManifest.xml时,所有内容都按预期合并。
最奇怪的是,Android Studio不会抱怨min sdk不匹配如果我将项目目录的名称缩短,如project
到prj
< / p>
之后,一切正常。合并清单视图没有任何错误,我可以按下CTRL + R从Android Studio运行应用程序。 但是当我恢复目录名时,它又会出现。
当然,我尝试多次清理和重建项目,还尝试了Invalidate Caches / Restart
,git checkout -f
,git clean -xdf
,rm -rf project/
和git clone
,以及所有内容
我只是想知道项目目录名称的长度是否真的重要。
答案 0 :(得分:0)
经过一番调查后,我得出结论,appcompat-v7
的min sdk版本实际上不是版本24的7。
我还没有使用矢量动画的任何功能,但是当支持库版本从23更改为24时发生错误。
库中可能有一些代码或资源需要animated-vector-drawable
。现在我想我必须将版本回滚到23。
我还发现appcompat-v7:25
本身需要min sdk 9 + 。我知道这很奇怪但是这可以从支持库存储库下的.aar文件中的AndroidManifest.xml中找到,当我用min sdk 7创建一个空项目进行测试时,我得到了一个构建错误,就是说min sdk应该高于或等于9。
(那为什么它的名字里面有v7
?)
谢谢@ X3Btel,你的评论也有帮助。