Gradle错误-复制的APK AndroidManifest.xml文件重复

5

我正在尝试将一个库(Evernote Android-SDK)导入到Android Studio中。我已经让gradle找到并下载了它(在项目资源管理器的“外部库”部分中显示)。但是,它开始告诉我它正在创建重复文件。

buildscript {
    repositories {
        mavenCentral()
   }
   dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
   }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile 'com.evernote:android-sdk:1.1.+'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 16
    }
}

这是出现的错误集合。
Gradle: : duplicate files during packaging of APK C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\apk\AutoNote-debug-unaligned.apk
Gradle: Execution failed for task ':AutoNote:packageDebug'.
    > Duplicate files copied in APK AndroidManifest.xml
    File 1: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_
    File 2: C:\Users\SSMI\My Projects\AutoNote\AndroidProject\AutoNote\build\libs\AutoNote-debug.ap_

这里出现了什么问题,我该如何解决? 回答
我做的是在项目根目录下创建了一个名为libraries的文件夹。然后,我将evernote sdk库文件夹移到其中,并将其命名为evernote。
接下来,我打开了“项目结构”文件。忽略了警告后,我进入了模块并点击了“+”按钮,添加了evernote文件夹。然后,我选择了我的应用程序项目模块,进入了依赖项选项卡。我点击了“+”按钮(如果无法单击,则可能需要Alt + Insert),并添加了我导入的模块(evernote)。
之后,我被迷惑了,因为我忘记在源文件中导入它。

请检查您的项目结构(文件 - > 项目结构)。您的 Evernote lib 是如何包含到您的项目中的?它应该只被添加一次作为一个模块。 - owe
3个回答

7
我认为您无法通过Android Studio的maven引用Evernote Android SDK。原因在于,Android库无法像简单的jar一样打包。 Evernote库是使用maven-android-plugin构建的,该插件与Android Studio gradle插件不兼容。这是因为maven插件使用apklib格式来重新分发库,而gradle使用新的aar格式。这就是为什么gradle在合并Evernote的AndroidManifest和您自己的文件时出现了重复,从而导致问题。相反,您需要克隆Evernote SDK的源代码,手动将其导入Android Studio,并以这种方式引用它。他们的readme中包含了在Intellij中执行此操作的说明,这应该与Android Studio相同。

谢谢你的帮助。我现在已经把它搞定了。真的很遗憾,你不能像我尝试的那样使用Gradle来获取最新版本。它应该能够按照我设想的方式工作。 - SSMI
我以为它已经可以工作了。虽然它编译成功了,但是在Android Studio中,当我引用Evernote API的某些部分时,仍然显示错误。是否还有其他步骤可以使代码完成正常工作? - SSMI
不应该有问题。如果您修改了gradle文件,可以尝试将它们与Android Studio项目重新同步- http://stackoverflow.com/a/17098412/108 - Greg
好的。一切似乎都正常工作了。我只是没有完全做对。 - SSMI

0

我遇到了同样的错误,看起来是由于在两个jar文件中都有相同名称的文件所致。对我来说,这两个文件的根目录中都有一个名为“about.html”的文件。重命名该文件后,一切正常。


-1

您已经添加了一个包含Manifest.xml文件的库jar文件。 您可以将该jar文件重命名为zip。然后解压缩zip并删除Manifest.xml文件。 之后,您可以再次将文件夹压缩为zip。最后将类型重命名为jar。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接