Android Studio的清单合并无法正常工作

时间:2016-11-02 10:08:43

标签: android android-studio android-studio-2.2

我正在使用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不匹配如果我将项目目录的名称缩短,如projectprj < / p>

之后,一切正常。合并清单视图没有任何错误,我可以按下CTRL + R从Android Studio运行应用程序。 但是当我恢复目录名时,它又会出现。

当然,我尝试多次清理和重建项目,还尝试了Invalidate Caches / Restartgit checkout -fgit clean -xdfrm -rf project/git clone,以及所有内容

我只是想知道项目目录名称的长度是否真的重要。

1 个答案:

答案 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,你的评论也有帮助。