Restlet错误:在android studio中打包APK时重复文件

时间:2015-04-15 09:58:38

标签: android jar android-studio apk restlet

我将所有的jar从restlet-android-2.3.1存档添加到android studio中的libs文件夹中。我可以制作项目,但是当我尝试调试时我得到了这个错误

    Path in archive: META-INF/services/org.restlet.engine.converter.ConverterHelper
    Origin 1: D:\android\restlet\app\libs\org.restlet.ext.gson.jar
    Origin 2: D:\android\restlet\app\libs\org.restlet.ext.html.jar
You can ignore those files in your build.gradle:
    android {
      packagingOptions {
        exclude 'META-INF/services/org.restlet.engine.converter.ConverterHelper'
      }
    }

Error:Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK META-INF/services/org.restlet.engine.converter.ConverterHelper
    File 1: D:\android\restlet\app\libs\org.restlet.ext.gson.jar
    File 2: D:\android\restlet\app\libs\org.restlet.ext.gson.jar

例如,如果:

  packagingOptions {
        exclude 'META-INF/services/org.restlet.engine.converter.ConverterHelper'
      }

然后我得到了这个:

Error:duplicate files during packaging of APK D:\android\restlet\app\build\outputs\apk\app-debug-unaligned.apk
Path in archive: META-INF/services/org.restlet.engine.ClientHelper
Origin 1: D:\android\restlet\app\libs\org.restlet.ext.sip.jar
Origin 2: D:\android\restlet\app\libs\org.restlet.ext.nio.jar
You can ignore those files in your build.gradle:
android {
  packagingOptions {
    exclude 'META-INF/services/org.restlet.engine.ClientHelper'
  }
}

等等。

我要添加的类是基类,并在其他jar中引用。 如果要从libs文件夹中删除有问题的罐子,那么它将起作用,但我最终切断了其中一半。我需要他们。如何解决这个问题?所有这些重型罐子都能很好地配合使用吗?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我只是在我的项目中使用了四个restlet jar,并且必须将以下内容放入build.gradle文件中。你会认为有一些工作室范围的设置,如“忽略重复”,但我没有找到它。我最终添加了足够的排除功能。

packagingOptions {
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
    exclude 'META-INF/services/com.fasterxml.jackson.core.ObjectCodec'
}