摇篮:执行失败的任务“:MyApp的:dexDebug”。 >无法调用IncrementalTask.taskAction()的任务“:MyApp的:dexDebug” [英] Gradle: Execution failed for task ':MyApp:dexDebug'. > Could not call IncrementalTask.taskAction() on task ':MyApp:dexDebug'
问题描述
我有一个问题,我解决不了这2天左右。 我分析了几乎所有关于此错误的问题,但我不能处理它。
下面我的树:
MyAppRoot
-MyApp
-libs
-jar4.jar //这是行不通的,如果我不把这里。
-libraries
-actionbarsherlock //库项目
-myOwnLibraryTree //项目树
-libs
-myjar1.jar
-Android支持,v4.jar
-myjar2.jar
-myjar3.jar
-infiniteloopindicator //库项目
下面,我删除了所有项目的所有燮库包含的库的。我把支持库在一个地方下libs文件夹中myOwnLibraryTree。
下面,infiniteloopindicator,使用支持lib下,要做到这一点,我添加支持的lib作为的.jar依赖于infiniteloopindicator。而且我是做MyApp的,太。没有编译错误。但我得到,dexDebug错误。
系统信息:
摇篮:意外的顶级例外:
摇篮:java.lang.IllegalArgumentException:如果已经添加: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;
摇篮:在com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
摇篮:在com.android.dx.dex.file.DexFile.add(DexFile.java:163)
摇篮:在com.android.dx.command.dexer.Main.processClass(Main.java:490)
摇篮:在com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
摇篮:在com.android.dx.command.dexer.Main.access $ 400(Main.java:67)
摇篮:在com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:398)
摇篮:在com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
摇篮:在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
摇篮:在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
摇篮:在com.android.dx.command.dexer.Main.processOne(Main.java:422)
摇篮:在com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
摇篮:在com.android.dx.command.dexer.Main.run(Main.java:209)
摇篮:在com.android.dx.command.dexer.Main.main(Main.java:174)
摇篮:在com.android.dx.command.Main.main(Main.java:91)
摇篮:1的错误;中止
在编制24秒内完成,1错误,0警告
1个错误
0警告
摇篮:执行失败的任务:MyApp的:dexDebug。
>无法调用IncrementalTask.taskAction()的任务:MyApp的:dexDebug
下面settings.gradle
包括':库:infiniteloopindicator',':库:actionbarsherlock',':库:myOwnLibraryTree',':MyApp的
下面actionbarsherlock:build.gradle
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:机器人库
依赖{
编制项目(:库:myOwnLibraryTree)
}
安卓{
compileSdkVersion 18
buildToolsVersion '18 .1.1
sourceSets {
主要 {
manifest.srcFile的AndroidManifest.xml
java.srcDirs = ['src'中]
res.srcDirs = ['水库']
}
}
}
下面infiniteloopindicator:build.gradle
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:机器人库
依赖{
编制项目(:库:myOwnLibraryTree)
}
安卓{
compileSdkVersion 18
buildToolsVersion '18 .1.1
sourceSets {
主要 {
manifest.srcFile的AndroidManifest.xml
java.srcDirs = ['src'中]
res.srcDirs = ['水库']
}
}
}
下面myOwnLibraryTree:build.gradle
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:机器人库
库{
mavenCentral()
}
依赖{
编译文件树(导演:库,包括:的* .jar)
}
安卓{
compileSdkVersion 18
buildToolsVersion '18 .1.1
defaultConfig {
的minSdkVersion 7
targetSdkVersion 19
}
}
这里是MyApp的:build.gradle
buildscript {
库{
mavenCentral()
}
依赖{
类路径com.android.tools.build:gradle:0.6.+
}
}
应用插件:'机器人'
库{
mavenCentral()
}
安卓{
compileSdkVersion 18
buildToolsVersion18.1.1
defaultConfig {
的minSdkVersion 7
targetSdkVersion 19
}
}
依赖{
编译文件(/库/ jar4.jar)
编制项目(:库:infiniteloopindicator)
编制项目(:库:actionbarsherlock)
编制项目(:库:myOwnLibraryTree)
}
事情会更好,如果你有支持库使用Maven风格包括所有build.gradle文件,而不是直接链接罐子声明。要做到这一点:
在你的SDK管理器,请确保您有Android的支持库进行安装。如果你有一个以上的Android SDK中,请确保你已经在正确的安装了它 - 多个SDK是常见的机器人工作室混乱的一个原因。
在所有的build.gradle文件,把它放进你的依赖块:
编译com.android.support:support-v4:+
它应该会自动查找在SDK的支持库,和Android摇篮插件将dedup库,如果它取决于在多个地方。
I have a problem and i cannot solve it about 2 days. I analysed nearly all questions about this error but i cannot handle it.
Here my tree:
MyAppRoot
-MyApp
-libs
-jar4.jar // it does not work, if i don't put here.
-libraries
-actionbarsherlock//library project
-myOwnLibraryTree// project tree
-libs
-myjar1.jar
-android-support-v4.jar
-myjar2.jar
-myjar3.jar
-infiniteloopindicator//library project
Here, i deleted all sup libraries from all projects included library ones. And i put support library at just one place under libs folder in myOwnLibraryTree.
Here, infiniteloopindicator, uses support lib, to do this, i add support lib as a .jar dependency to infiniteloopindicator. And i did it for MyApp,too. There is no compile errors. But i get, dexDebug error.
System message :
Gradle: UNEXPECTED TOP-LEVEL EXCEPTION:
Gradle: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;
Gradle: at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
Gradle: at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
Gradle: at com.android.dx.command.dexer.Main.processClass(Main.java:490)
Gradle: at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
Gradle: at com.android.dx.command.dexer.Main.access$400(Main.java:67)
Gradle: at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
Gradle: at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
Gradle: at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
Gradle: at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
Gradle: at com.android.dx.command.dexer.Main.processOne(Main.java:422)
Gradle: at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
Gradle: at com.android.dx.command.dexer.Main.run(Main.java:209)
Gradle: at com.android.dx.command.dexer.Main.main(Main.java:174)
Gradle: at com.android.dx.command.Main.main(Main.java:91)
Gradle: 1 error; aborting
Compilation completed with 1 error and 0 warnings in 24 sec
1 error
0 warnings
Gradle: Execution failed for task ':MyApp:dexDebug'.
> Could not call IncrementalTask.taskAction() on task ':MyApp:dexDebug'
Here settings.gradle
include ':libraries:infiniteloopindicator',':libraries:actionbarsherlock',':libraries:myOwnLibraryTree', ':MyApp'
Here actionbarsherlock : build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
dependencies {
compile project(":libraries:myOwnLibraryTree")
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Here infiniteloopindicator : build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
dependencies {
compile project(":libraries:myOwnLibraryTree")
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Here myOwnLibraryTree : build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
}
And here is MyApp : build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
}
dependencies {
compile files('/libs/jar4.jar')
compile project(":libraries:infiniteloopindicator")
compile project(":libraries:actionbarsherlock")
compile project(":libraries:myOwnLibraryTree")
}
Things will work better if you include Support library using a Maven-style include statement in all your build.gradle files instead of linking the jar directly. To do that:
In your SDK manager, make sure you have the "Android Support Repository" installed. If you have more than one Android SDK, make sure you've installed it in the right one -- multiple SDKs are a cause of frequent Android Studio confusion.
In all your build.gradle files, put this in your dependencies block:
compile 'com.android.support:support-v4:+'
It should automatically look in the SDK for the support repository, and the Android Gradle plugin will dedup the library if it's depended on in multiple places.
这篇关于摇篮:执行失败的任务“:MyApp的:dexDebug”。 >无法调用IncrementalTask.taskAction()的任务“:MyApp的:dexDebug”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!