Android Studio.我在应用程序运行期间遇到了这种错误.
Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt
的build.gradle
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.1'
compile 'com.j256.ormlite:ormlite-android:4.48'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile 'com.octo.android.robospice:robospice:1.4.11'
compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
EDITED
这些排除选项解决了我的问题:
packagingOptions …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我使用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) 我从Eclipse导出我的项目并使用此链接中的说明导入到Android Studio:http://developer.android.com/sdk/installing/migrate.html
当我构建时,我有一个错误:
Duplicate files copied in APK META-INF/DEPENDENCIES
Run Code Online (Sandbox Code Playgroud)
搜索后,我找到了一个解决方案:添加
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
Run Code Online (Sandbox Code Playgroud)
进入build.gradle.它的工作原理!
但我不明白为什么我有这个错误以及为什么我必须应用该修复.谁能解释一下?
我正在使用gradle 1.10,android插件的版本是0.8.0.我的android项目需要这两个罐子:jackson-core-asl-1.9.11.jar和jackson-mapper-asl-1.9.11.jar.我这样添加文件:
dependencies {
compile files('libs/jackson-core-asl-1.9.11.jar')
compile files('libs/jackson-mapper-asl-1.9.11.jar')
}
Run Code Online (Sandbox Code Playgroud)
在gradle构建期间,我收到一条错误消息,指出这两个文件是重复的META-INF/ASL2.0.我通过排除以下文件解决了这个问题:
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
}
Run Code Online (Sandbox Code Playgroud)
我必须排除所有这些,因为显然所有这些文件都有重复的文件.
我想知道为什么会出现这个问题.这是android插件或gradle本身的错误吗?可以排除上述文件导致任何问题吗?我只是排除上面提到的罐子,或者那些META-INF文件还有什么?我不想排除我的项目需要的任何东西
如何将一个库项目添加到Android Studio并使用它?(有些问问题不会生效)我试着找到答案如何将一个库项目添加到Android Studio?或如何使用Android Studio(不是jar)导入相关项目.但它不起作用.它还说"检索项目的父项时出错:找不到与给定名称'Theme.Sherlock.Light'匹配的资源." 等等
我的sdk工具rev是22.
我使用的是Android Studio,我在那里使用了几个库.
我有:
android-query-full.0.25.10.jar
gson-2.2.4-sources.jar
slide-menu.jar
Run Code Online (Sandbox Code Playgroud)
我在build.gradle文件中定义了编译整个libs目录,如下所示:
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile fileTree(dir: 'libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)
所有这些都很有效.
现在我想添加另一个库"PullToRefresh"我已经将Res和Src文件夹打包到一个jar文件中,其中包含来自eclipse的源代码(就像我使用SlideMenu.jar一样)并将新创建的jar作为库添加到我的项目旁边所有其他人.
当我尝试构建我的项目时,我从gradle中得到以下错误:
Gradle: : duplicate files during packaging of APK C:\Code\TestProject\Test\build\apk\Endilo-debug-unaligned.apk
Gradle: Execution failed for task ':Endilo:packageDebug'.
> Duplicate files copied in APK res/values/attrs.xml
File 1: C:\Code\TestProject\Test\libs\PullToRefresh.jar
File 2: C:\Code\TestProject\Test\libs\PullToRefresh.jar
Run Code Online (Sandbox Code Playgroud)
这是非常奇怪的,因为我从同一个jar文件中获取重复项.这里发生了什么!?
我们已将Android应用项目更改为使用gradle,但已注意到它的构建速度明显变慢.
之前使用ANT:
6 sek/50 sec(干净)
使用gradle后:
30 sek/80 sec(干净)
我用以下方法描述了解决方案:
gradle assembleDebug --profile
Run Code Online (Sandbox Code Playgroud)
结果报告中的主要任务是:任务:(在构建中没有干净)
:packageDebug 10.690s
:processDebugResources 8.795s
:compileDebugJava 7.644s
Run Code Online (Sandbox Code Playgroud)
我对获取有关这些任务的更多详细信息没有任何想法.
这是正常的吗?怎么可以改善?
我知道新的构建系统仍处于测试阶段,但似乎其他人的构建速度更快.
我已经环顾四周而没有找到解决方案我尝试过几个方面,包括确保使用包含以下内容的gradle.properties文件启用gradle deamon:
org.gradle.daemon=true
org.gradle.jvmargs=-Xms128m -Xmx256m
org.gradle.parallel=true
Run Code Online (Sandbox Code Playgroud)
的build.gradle:
buildscript {
repositories {
mavenCentral()
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
classpath 'com.google.guava:guava:14.0.1'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
classpath 'me.tatarka:gradle-retrolambda:1.1.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2'
}
}
repositories {
mavenCentral()
maven { url 'http://download.crashlytics.com/maven' }
}
apply plugin: 'android'
apply plugin: 'crashlytics'
apply plugin: 'retrolambda'
apply plugin: 'android-apt'
dependencies {
compile fileTree(dir: …Run Code Online (Sandbox Code Playgroud) 我在我的 gradle 中使用以下拆分代码来减小 APK 大小:
splits {
abi {
// Enable ABI split
enable true
// Clear list of ABIs
reset()
// Specify each architecture currently supported by the Video SDK
include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
// Specify that we do not want an additional universal SDK
universalApk false
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,APK 生成得很好,大小减小并在模拟器上运行。
但是当我尝试从 Build > Build bundles/apks 构建 APK 文件时

我收到此错误:
Execution failed for task ':app:packageAbcDebug'.
> A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
> Could not find EOCD in …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用HttpEntity将文件发送到服务器
HttpEntity mpEntity = MultipartEntityBuilder.create().addBinaryBody("file", file, ContentType.create("image/jpeg"), file.getName()).build();
但是为了使用它,我需要将mime库导入到我的项目中.在我的gradle.build中,我添加:
compile 'org.apache.httpcomponents:httpmime:4.3.4'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误警告,导致库未导入:
WARNING: Dependency org.apache.httpcomponents:httpclient:4.3.4 is ignored for debug as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
Run Code Online (Sandbox Code Playgroud)
任何想法我需要做什么,所以我可以成功导入这些库?
我正在尝试将Jackson添加到我的Android Studio项目中,我将其添加到gradle中的依赖项:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.android.support:support-v4:19.+'
compile files('libs/universal-image-loader-1.9.2.jar')
compile 'com.google.android.gms:play-services:+'
compile 'com.fasterxml.jackson.core:jackson-databind:2.4.3'
}
Run Code Online (Sandbox Code Playgroud)
Gradle构建运行正常,但是当我想在Android Studio中运行测试时,它会给我以下错误:
Error:Gradle: duplicate files during packaging of APK .../app/build/outputs/apk/app-debug-unaligned.apk
Error:Gradle: Execution failed for task ':app:packageDebug'.
Run Code Online (Sandbox Code Playgroud)
在APK META-INF/LICENSE文件1中复制的重复文件:... /.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.4.3/a30ec6f59b6d31b2df06fa73925fda2fc7e84486/jackson- annotations-2.4.3.jar文件2:... /.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.4.3/a30ec6f59b6d31b2df06fa73925fda2fc7e84486/jackson-annotations-2.4 .3.jar
我尝试在Android Studio中使缓存失效,但它不起作用.请问有人可以帮助我吗?
android gradle android-studio build.gradle android-gradle-plugin
android ×10
gradle ×5
jar ×2
apache ×1
architecture ×1
build.gradle ×1
duplicates ×1
eclipse ×1
http ×1
java ×1
meta-inf ×1
split ×1