执行失败的任务:在Android Studio中的应用程序:compileDebugJavaWithJavac
我正在Android Studio中开发一个Android应用程序。 不太清楚哪里出了问题。 前几天我成功build设了。 任何帮助将是伟大的。
这是错误:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details. * What went wrong: Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed; see the compiler error output for details.
这是我的build.gradle
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "21.1.2" defaultConfig { multiDexEnabled true applicationId "com.tubbs.citychurchob" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(dir: 'libs', include: 'Parse-*.jar') compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.parse.bolts:bolts-android:1+' compile 'com.android.support:recyclerview-v7:23.1.0' }
尝试将buildToolsVersion升级到“23.0.1”,如下所示:
compileSdkVersion 23 buildToolsVersion "23.0.1"
如果你没有安装这个版本的buildTools,请用SDKManager下载它作为提示。
这是因为你的$ JAVA_HOME没有设置。 如果您使用的是Mac,
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home"
在项目设置中设置JDK位置
更新(06/05/2017)
我想要使用Realm for Android,并且需要Retrolambda 。 问题是杰克与Retrolambda冲突。
所以我从下面的原始答案中显示的我的gradle中删除了我的Jack选项configuration,并进行了以下更改:
// --------------------------------------------- // Project build.gradle file // --------------------------------------------- buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.1' classpath 'me.tatarka:gradle-retrolambda:3.6.1' classpath "io.realm:realm-gradle-plugin:3.1.4" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
和
// --------------------------------------------- // Module build.gradle file // --------------------------------------------- apply plugin: 'com.android.application' apply plugin: 'me.tatarka.retrolambda' apply plugin: 'realm-android' android { compileSdkVersion 25 buildToolsVersion "25.0.2" ...
的tools.jar
如果您在上面进行了这些更改,但仍然出现以下错误:
Execution failed for task ':app:compileDebugJavaWithJavac'. com.sun.tools.javac.util.Context.put(Ljava/lang/Class;Ljava/lang/Object;)V
尝试删除以下文件:
/Library/Java/Extensions/tools.jar
然后:
- 退出模拟器
- 退出Android Studio
- 重新打开Android Studio
- build立>清洁项目
- 再次运行/debugging你的应用到你的设备/仿真器上
所有的变化都为我解决了。
注意:
我不确定什么是tools.jar,或者是否重要。 像这个Stackoverflow问题中的其他用法一样:
无法在OSX优胜美地上创buildJava项目
我们很不幸地不得不使用AUSKey(澳大利亚政府在我们login澳大利亚商业门户网站之前使用的一些古老的恐龙Javaauthentication密钥系统来authentication我们的计算机)。
我的猜测是tools.jar
可能是AUSKey的JAR文件。
如果您担心,而不是删除此文件,您可以备份整个文件夹并将其保存在某个地方,以防万一您不能再次login到澳大利亚商业门户网站。
希望有所帮助:D
原始答复
我今天碰到这个问题(27/06/2016)。
我下载了Android Studio 2.2并更新了JDK 1.8。
除了上面的指向正确的JDKpath的答案之外,我不得不另外在我的build.gradle(Module: app)
文件中指定JDK版本:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
生成的文件如下所示:
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "com.mycompany.appname" minSdkVersion 17 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" jackOptions { enabled true } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' }
请注意,如果遇到有关Java 8 language features requires Jack enabled
的错误Java 8 language features requires Jack enabled
,则需要将以下内容添加到您的Gradle文件中(如上所示):
jackOptions { enabled true }
这样做后,我终于得到了我的新项目应用程序运行在我的手机上。
第一步:
第二步:
我尝试了两个答案,但没有工作。 我这里的事情是解决scheme。
从你的项目 –
去Gradle脚本>> build.gradle(模块:应用程序)然后删除下面的代码(如果存在)
………………………………………
compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_6 }
………………………………………
删除它,然后清理项目,然后运行。 没有java家需要设置,不需要更改版本
在将Android Studio升级到2.2.2版本后,我遇到了这个问题,我推荐使用embedded式JDK解决它:
在Android Studio中打开:文件>项目结构>查看JDK位置是否指向您的JDK 1.8目录。
注意:你可以使用compileSdkVersion 24.它工作的时候相信我。为此首先从oracle下载最新的jdk。
我解决了这个问题。
我正在试图编译这个项目“Waveform Android” – https://github.com/Semantive/waveform-android
并得到了我这个错误。
我在Ubuntu 14.04LTS上使用Android工作室。
我有JAVA 8安装。
在我的gradle构build脚本文件中,有一些语句如下。
retrolambda { jdk System.getenv("JAVA8_HOME") oldJdk System.getenv("JAVA7_HOME") javaVersion JavaVersion.VERSION_1_7 }
我把“JAVA8_HOME”改为“JAVA_HOME”,因为在我的环境variables中,java home目录被设置为JAVA_HOME而不是JAVA8_HOME,然后它成功地build立了。
在更改构build脚本之后。
retrolambda { jdk System.getenv("JAVA_HOME") oldJdk System.getenv("JAVA7_HOME") javaVersion JavaVersion.VERSION_1_7 }
或者你也可以创build一个名为JAVA8_HOME的新的环境variables指向正确的JDK位置,但是我还没有尝试过,因为我不想每个JDK版本都需要环境variables。
请检查您的应用程序的build.gradle。 我有同样的问题,最后我发现问题是在我的build.gradle文件依赖{},它添加额外的.jar文件,其实际上不存在于我的项目作为依赖。 所以我删除这个依赖关系,问题已经消失。
问题在于命名文件夹,如果您的文件夹保存您的项目包含特殊字符,然后删除它们。 如果错误仍然存在,请尝试保存没有空间的文件夹。
我在Mac OS Sierra上遇到了这个问题,我第一次运行React Native Android App :
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not find tools.jar
我将Java开发工具包(JDK)的JAVA HOME环境variables从:
export JAVA_HOME='/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home'
至 :
export JAVA_HOME='/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home'
在Android Studio中创build项目并在项目设置中查找JDK位置后,我find了正确的版本。
只是补充@yuchaozh 上面的答案 ,帮助我解决它。 (我没有代表发表评论)
运行这个来知道你有哪个java版本
ls /Library/Java/JavaVirtualMachines/
你会得到像这样的输出:
jdk1.8.0_111.jdk
用您的Java版本replace并运行此命令以导出正确的path。
export JAVA_HOME="/Library/Java/JavaVirtualMachines/<YOUR_JAVA_VERSION>/Contents/Home"
在构build文件中更改编译文件('AF-Android-SDK.jar')来编译文件('libs / AF-Android-SDK.jar') ,它将工作
我有同样的问题。 我正在和一个使用Mac的开发团队合作,团队中的其他人都在运行Windows。 但是我们在jdk 1.8上使用了Anroid Studio 2.2-beta。 如果你在Mac上遇到这个问题,这里是如何解决它。 不要使用Android Studio 2.2-beta。 我花了几个小时试图在2.2-beta中debugging这个错误。 我通过简单地更改为Android Studio 2.1.3来解决这个问题 。 我们的应用程序在更改Android Studio版本后立即运行。 在下载之前,请在Android Studio的网站上警告mac用户在2.2 beta版上运行jdk 1.8。 猜猜我应该读精美的打印哈哈
我遇到了同样的错误。 指向正确版本的JDK的JAVA_HOME。 所有支持库和构build工具已更新。 仍然面临同样的问题。
我在我的项目中使用Android注释。 我添加了一个新的View.and已经有一个在Java文件中具有相同名称的现有视图。 当我运行该项目,而不是指出已经存在的视图,我收到上述错误。
检查您的Java文件错误,如果其他解决scheme不起作用。
如果您使用的是Android + Lambdas,则可能会发生这种情况。 有时我可以毫无问题地使用Lambdas,但在其他情况下,项目不会编译并在编译器中给出exception(当我尝试将Lambda或方法引用传递给ScheduledExecutorService.scheduleAtFixedRate时)。
在这个链接中有一个讨论( https://bugs.openjdk.java.net/browse/JDK-8169759 ),他们解释了为什么发生这种情况。 同时,我只是在编译器允许的情况下在我的Android项目中使用lambdas。
您的gradle文件可能已损坏。 尝试运行
./gradlew --refresh-dependencies
在android studio里面的terminal。
这对我有用
compileSdkVersion 25 buildToolsVersion '25.0.0'
我面临类似的问题,但我不得不手动设置程序文件的jdk文件夹,所以我特别推荐给大家的是升级到Java 8的,直接指向android studio的项目设置,要么使用embedded选项或select文件夹
更改build.gradle文件中的任何东西将重新同步一切,错误将会消失。对我来说,我改变了minSdkVersion,它的工作。 不要担心,如果系统崩溃或Android Studio没有正确closures,可能会发生这种情况。
当我尝试在我的unit testing中使用retrolambda时,我有这个错误。 我没有find一个解决scheme如何使unit testingretrolambda工作。 所以,我使用老式的匿名类而不是unit testing的lambdaexpression式,它对我很有用。
- 如何在Android上捕捉video录制?
- 带有Google Maps API v2的ViewPager:神秘的黑色视图
- 在layout / main.xml主布局文件中的TextView中设置textColor不引用colors.xml文件。 (它想要#RRGGBB而不是@ color / text_color)
- Android Parcelable – RetailerOrderActivity.java返回null
- Android构build失败,build.xml:479:SDK没有安装任何生成工具
- 如何添加一个额外的语言input到Android?
- 从两个类扩展
- 无法执行dex:多个dex文件定义
- 如何在Android Studio中更改Android版本和代码版本号?