在我的项目中,我使用Apache的httpcore和httpmime库.将Android Studio更新到0.4.0后,我有这个问题构建我的项目:
Duplicate files copied in APK META-INF/DEPENDENCIES
File 1: /home/slava/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.3.1/f7899276dddd01d8a42ecfe27e7031fcf9824422/httpmime-4.3.1.jar
File 2: /home/slava/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.3.1/f7899276dddd01d8a42ecfe27e7031fcf9824422/httpmime-4.3.1.jar
Run Code Online (Sandbox Code Playgroud)
这是Gradle构建的堆栈跟踪:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':CMO:packageDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:286)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:266)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:135)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:93)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
at …Run Code Online (Sandbox Code Playgroud) 我在一个商业Android应用程序工作.我还使用了一些在不同许可证类型下获得许可的库,其中一些库说明了以下内容:
如果图书馆有一份带有归属说明的"NOTICE"文件,则您必须在分发时包含该通知
(其中一个是根据Apache License 2.0获得许可的).
有不止一个图书馆.当我使用gradle或Android Studio进行构建时,我获得以下构建错误:
* What went wrong:
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/license.txt
Run Code Online (Sandbox Code Playgroud)
我在互联网和stackoverflow上找到的答案建议从包装中删除license.txt(notice.txt或其他可能会干扰的文件),方法是添加build.gradle以下文件:
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
Run Code Online (Sandbox Code Playgroud)
请参阅示例:Android Studio 0.4在APK META-INF/LICENSE.txt中复制的重复文件
根据这些库的许可证(例如Apache License 2.0),应包含许可证和通知文件.
我的问题: 如何将与许可相关的多个文件(例如license.txt,notice.txt等)从gradle添加到我的项目中以符合许可(技术细节:许可文本将被连接)?
我在AndroidStudio中创建了一个带有几个模块的简单项目.每个模块的gradle脚本包含以下代码:
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
}
Run Code Online (Sandbox Code Playgroud)
如何将此代码移动到主build.gradle脚本(项目的脚本)?此代码适用于所有子模块.
有人知道如何调试这个吗?我无法弄清楚哪些库产生了问题。
旁注,它只发生在我尝试运行 Android 测试时,所以我最好的猜测是它与某些测试库有关。
testImplementation "androidx.room:room-testing:$version_room"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0'
// Compose Tests
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$version_compose"
debugImplementation "androidx.compose.ui:ui-test-manifest:$version_compose"
// Hilt test
androidTestImplementation "com.google.dagger:hilt-android-testing:$version_hilt"
kaptAndroidTest "com.google.dagger:hilt-android-compiler:$version_hilt"
debugImplementation 'androidx.fragment:fragment-testing:1.3.6'
Run Code Online (Sandbox Code Playgroud)
Execution failed for task ':app:mergeDebugAndroidTestJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
> 2 files found with path 'META-INF/LGPL2.1' from inputs:
- /home/lbenevento/.gradle/caches/transforms-3/1e2dfa6057fe4e701d175f47b1099efa/transformed/jetified-jna-platform-5.5.0.jar
- /home/lbenevento/.gradle/caches/transforms-3/405542266c1c406c39ff1a20cb26a332/transformed/jetified-jna-5.5.0.jar
Adding a packagingOptions block may help, please refer to
https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
for more information
* Try:
Run with --info or --debug option to get more log …Run Code Online (Sandbox Code Playgroud) 我在项目1中使用2以下的lib.spring-core-3.1.0.RELEASE.jar 2. spring-web-3.1.0.RELEASE.jar
但android studio正在考虑上面的lib重复输入并在打包时给出错误.
Error:duplicate files during packaging of APK E:\Code\iDoc\app\build\outputs\apk\app-debug-unaligned.apk
Path in archive: META-INF/license.txt
Origin 1: E:\Code\iDoc\app\libs\spring-core-3.1.0.RELEASE.jar
Origin 2: E:\Code\iDoc\app\libs\spring-web-3.1.0.RELEASE.jar
You can ignore those files in your build.gradle:
android {
packagingOptions {
exclude 'META-INF/license.txt'
}
}
------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
有人遇到过类似的问题吗?
请为此错误建议一些解决方法.
我在我的移动应用程序中添加了一些内容,例如添加或动画列表。问题是几天前我可以完美地生成 APK,自从你添加这些东西的那一刻起,Android Studio 就不允许我生成它们。它有以下错误。
条目名称“META-INF/androidx.vectordrawable_vectordrawable.version”发生冲突
或者这些其他的:
任务“:app:packageDebug”执行失败。执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade Entry name 'META-INF/androidx.vectordrawable_vectordrawable.version' 时发生故障发生冲突
我不知道会出现什么问题。非常感谢。
我正在尝试按照这些说明将Google Translate客户端库添加到我的Android项目中,这告诉我将此行添加到我的库项目的build.gradle中的依赖项(这是我的应用程序项目的依赖项):
compile group: 'com.google.cloud', name: 'google-cloud-translate', version: '0.4.0'
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到了这个错误:
Error:Execution failed for task ':typeSmart:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
File1: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\com.google.auto.value\auto-value\1.1\f6951c141ea3e89c0f8b01da16834880a1ebf162\auto-value-1.1.jar
File2: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\org.codehaus.jackson\jackson-core-asl\1.9.11\e32303ef8bd18a5c9272780d49b81c95e05ddf43\jackson-core-asl-1.9.11.jar
File3: C:\Users\Barry\.gradle\caches\modules-2\files-2.1\com.google.inject\guice\4.0\f990a43d3725781b6db7cd0acf0a8b62dfd1649\guice-4.0.jar
Run Code Online (Sandbox Code Playgroud)
我理解这个错误在技术上意味着什么,但不是为什么它出现在这种情况下.我试图通过packagingOptions在我的build.gradle中为每个答案(和其他人)添加一个块来抑制它,但它没有帮助(加上它是非法的).
Google似乎不太可能发布内部不一致的API.问题可能与我的环境有关.我的应用程序包含一个包含大部分代码的库模块.它是app模块的依赖项.我怀疑这与它有关.
我正在使用:Gradle 2.14.1; Android Studio 2.2.2; 构建工具25.0.0.
您是否已成功将Google翻译客户端库添加到Android项目中?如果是这样,怎么样?
提前致谢...
我一直在寻找这里发布的关于这个错误的一些答案,但没有运气.我希望得到一些关于发生了什么的澄清.我的错误如下:
错误:任务':app:transformResourcesWithMergeJavaResForDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.builder.packaging.DuplicateFileException:在APK META-INF/maven/commons-io/commons-io/pom.xml中复制的重复文件File1:/ home/colin /.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-io/1.3.2/b6dde38349ba9bb5e6ea6320531eae969985dae5/commons-io-1.3.2.jar File2:/home/colin/.gradle/caches /modules-2/files-2.1/commons-io/commons-io/1.3.2/b6dde38349ba9bb5e6ea6320531eae969985dae5/commons-io-1.3.2.jar
我弄完了
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
Run Code Online (Sandbox Code Playgroud)
在app > build.gradle文件中,但问题仍然存在.还有其他地方我应该放这个,或者只是删除一些文件?或者我可能已经排除了太多文件 - 我是否应该省略其中一些行,如果是这样的话?我也尝试将依赖项移到顶部,上面Android无济于事.
此外,我对这些帖子中给出的一些建议感到有些困惑.Exclude和之间的操作区别是PickFirst什么?它们似乎是可以互换的,但表达了截然不同的想法.在上传到应用程序商店时,我似乎需要包含许可证,所以如果我将其排除在这里以便让应用程序进行编译,那么在我准备上传时,我将在哪里包含它?我希望有人能够更多地了解这里发生的事情.
我安装了Android Studio版本1.0.1,并尝试从eclipse导入我的项目,它给了我以下错误:
Error:Execution failed for task ':app:packageDebug'.
Duplicate files copied in APK META-INF/DEPENDENCIES
File 1: E:\app3\app\libs\httpmime-4.3.jar
File 2: E:\app3\app\libs\httpmime-4.3.jar``
Run Code Online (Sandbox Code Playgroud)
我试图导入我的项目同时使用转换jar选项gradle并且没有转换它们我已经搜索了很多并尝试了解决方案在线但也没有工作在这里是我的build.gradle为我的项目
apply plugin: 'com.android.application'
Run Code Online (Sandbox Code Playgroud)
android {compileSdkVersion 20 buildToolsVersion"20.0.0"
defaultConfig {
applicationId "com.FluoraPin.androidApp"
minSdkVersion 14
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
android {
packagingOptions {
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile project(':beyondAR_Framework')
compile project(':facebookSDK')
compile project(':volley')
compile 'com.android.support:support-v4:20.0.0'
compile 'com.android.support:appcompat-v7:19.1.0'
compile files('libs/commons-logging-1.1.3.jar')
compile files('libs/httpclient-4.3.6.jar')
compile files('libs/httpclient-cache-4.3.6.jar')
compile files('libs/httpcore-4.3.3.jar')
compile files('libs/httpmime-4.3.jar')
compile files('libs/picasso-2.3.4.jar') …Run Code Online (Sandbox Code Playgroud)