4

I'm new to Android Studio and i want to implement Urban Airship in one of my projects. I followed the example on their website with the .aar file and I ended up getting this error.

Error: [/Users/AndroidstudioProjects/MyApplication/app/build/intermediates/exploded-aar/com.urbanairship/urbanairship-lib/5.1.0/AndroidManifest.xml:8]
Invalid instruction 'overrideLibrary', valid instructions are : REMOVE,REPLACE,STRICT

Correct me if I'm wrong but doesn't this mean that they have issues in their manifest file? Or am I completely out in the blue? If so, do anyone have a good example on how to implement it?

4

3 回答 3

5

Urban Airship SDK 基于需要 Android API 9 的 Google Play 服务构建,而 Urban Airship 则兼容 6+。这就是我们需要覆盖库版本的原因。您使用的是什么 android gradle 插件版本?您需要使用 13.3 或更高版本。请参阅http://tools.android.com/tech-docs/new-build-system

在项目 build.gradle 文件中:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.13.+'
    }
}
于 2014-11-13T21:18:06.103 回答
1

我只是遇到了同样的问题,并且能够修复它并构建我的项目:

违规行是AndroidManifest.xml的第 8 行, 我刚刚删除了这一行并更改了一些 SDK 版本。

您可以使用 WinRar打开文件urbanairship-lib-5.1.0.aar 。导航到清单。打开它并在您最喜欢的文本编辑器中进行编辑。保存并关闭清单。WinRar 询问您是否要更新存档。选择是!

根据此页面,overrideLibrary用于当您的库中具有 minSDK 版本 > 项目中的 minSDK 版本时。因此,它允许编译不同的版本,而不会出现错误。

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:overrideLibrary-marker

删除,替换等做一些不同的事情(也在该页面上描述 - 向上滚动)。

然后在我的项目build.gradle文件中,我更改了版本号以匹配我的项目:

由此

compile 'com.android.support:support-v4:21.+'

对此

compile 'com.android.support:support-v4:19.+'

很高兴知道 OP 支持票的结果是什么。请随时通知我们!

于 2014-11-11T12:54:56.317 回答
0

我在评估 Urban Airship SDK 的 5.1.0 版本时也遇到了这个问题。我正在使用 Android Studio Beta 0.8.14。我联系了 Urban Airship 支持,他们告诉我将 gradle 的版本增加到 0.13.3。Android Studio 0.8.14 默认为 0.13.2。在项目 build.gradle 文件中将 gradle 的版本更改为 0.13.3 后,我能够成功编译和导入新的 SDK。

于 2014-11-14T18:51:33.753 回答