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_

这里有什么问题,我该如何解决?

回答
所以我所做的就是在项目根目录中放置一个名为库的文件夹。我将evernote sdk 库文件夹移到其中并将其命名为evernote。

然后我去了文件项目结构。我忽略了警告。我进入模块点击+并添加了evernote文件夹。然后我选择了我的应用程序项目模块并转到依赖项选项卡。我点击 + 那里(你可能需要 Alt+Insert 如果它不会点击)并添加我导入的模块(evernote)。

然后我被骗以为它不起作用,因为我忘记在源文件中导入它。

4

3 回答 3

7

我不认为你可以通过 maven 和 Android Studio 引用 Evernote Android SDK。问题源于无法将Android库打包为简单的jar。

Evernote 库是使用与 Android Studio gradle 插件不兼容的 maven-android-plugin 构建的。这是因为 maven 插件使用apklib格式重新分发库,而 gradle 使用新的aar格式。这就是为什么 gradle 无法将 Evernote 的 AndroidManifest 与您自己的合并,从而导致重复。

相反,您必须克隆 Evernote SDK 的源代码,手动将其导入 Android Studio,然后以这种方式引用它。他们的自述文件包含使用 Intellij 执行此操作的说明,该说明应与 Android Studio 相同。

于 2013-07-22T21:23:42.013 回答
0

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

于 2013-09-11T11:10:43.273 回答
-1

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

于 2017-05-31T11:47:28.773 回答