错误:任务“:app:compileDebugJavaWithJavac”执行失败。 > 扩展 RealmObject 类后编译失败

Posted

技术标签:

【中文标题】错误:任务“:app:compileDebugJavaWithJavac”执行失败。 > 扩展 RealmObject 类后编译失败【英文标题】:Error:Execution failed for task ':app:compileDebugJavaWithJavac'. > Compilation failed after extending RealmObject class 【发布时间】:2017-03-14 16:34:52 【问题描述】:

我正在尝试学习适用于 android 的 Realm,并按照https://realm.io/docs/java/latest/#installation 的安装说明进行操作。

项目 build.gradle 文件

buildscript 
repositories 
    jcenter()

dependencies 
    classpath 'com.android.tools.build:gradle:2.2.2'
    classpath "io.realm:realm-gradle-plugin:2.1.1"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files



allprojects 
repositories 
    jcenter()



task clean(type: Delete) 
 delete rootProject.buildDir

应用级 build.gradle 文件

apply plugin: 'com.android.application'
apply plugin: 'realm-android'

android 
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig 
    applicationId "com.app.practice.realm.realmpractice"
    minSdkVersion 18
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

buildTypes 
    release 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    



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:25.0.0'
testCompile 'junit:junit:4.12'
 

然后我添加了一个扩展 RealmObject 的类 User 并尝试编译项目只是为了查看一切正常.. 但我收到错误

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

编译失败;有关详细信息,请参阅编译器错误输出。

用户类别:

package com.app.practice.realm.realmpractice;

import io.realm.RealmObject;

public class User extends RealmObject 

private int id;
private String name;

我的申请文件

import android.app.Application;

import io.realm.Realm;

public class MyApplication extends Application 

@Override
public void onCreate() 
    super.onCreate();
    Realm.init(this);


--Stacktrace o/p

Note: Processing class User
Note: Creating DefaultRealmModule
An exception has occurred in the compiler (1.8.0_05). Please file a bug at     the Java Developer Connection (http://java.sun.com/webapps/bugreport)  after   checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report.  Thank you.

com.sun.tools.javac.code.Symbol$CompletionFailure:找不到 rx.Observable 的类文件

FAILED

FAILURE:构建失败并出现异常。

出了什么问题: 任务 ':app:compileDebugJavaWithJavac' 执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

尝试: 使用 --info 或 --debug 选项运行以获得更多日志输出。

例外情况是: org.gradle.api.tasks.TaskExecutionException:任务':app:compileDebugJavaWithJavac'的执行失败。 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) 在 org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110) 在 org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 在 org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) 在 org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) 在 org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) 在 org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153) 在 org.gradle.internal.Factories$1.create(Factories.java:22) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53) 在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150) 在 org.gradle.initialization.DefaultGradleLauncher.access $200(DefaultGradleLauncher.java:32) 在 org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98) 在 org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63) 在 org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92) 在 org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99) 在 org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:46) 在 org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58) 在 org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30) 在 org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81) 在 org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46) 在 org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) 在 org.gradle.util.Swapper.swap(Swapper.java:38) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 在 org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) 在 org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) 在 org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) 引起:org.gradle.api.internal.tasks.compile.CompilationFailedException:编译失败;有关详细信息,请参阅编译器错误输出。 在 org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:48) 在 org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33) 在 org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.delegateAndHandleErrors(NormalizingJavaCompiler.java:104) 在 org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:53) 在 org.gradle.api.internal.tasks.compile.NormalizingJavaCompiler.execute(NormalizingJavaCompiler.java:38) 在 org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:35) 在 org.gradle.api.internal.tasks.compile.CleaningJavaCompilerSupport.execute(CleaningJavaCompilerSupport.java:25) 在 org.gradle.api.tasks.compile.JavaCompile.performCompilation(JavaCompile.java:163) 在 org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:145) 在 org.gradle.api.tasks.compile.JavaCompile.compile(JavaCompile.java:93) 在 com.android.build.gradle.tasks.factory.AndroidJavaCompile.compile(AndroidJavaCompile.java:49) 在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTask​​Action.doExecute(AnnotationProcessingTaskFactory.java:245) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTask​​Action.execute(AnnotationProcessingTaskFactory.java:232) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) ... 70 更多

【问题讨论】:

如果添加getId()setId()getName()setName() 方法,错误会消失吗?虽然如果您检查该行下方,您可能会在编译日志中发现错误消息 添加getter和setter后没有成功...还是同样的错误! .... 很奇怪。可以试试target sdk 24,build tool 24.2.2,appcompat version 24.2.2(或24.2.1)吗? 尝试包含 RxJava。 【参考方案1】:

根据https://realm.io/docs/java/latest/#jackson-databind

1) 制作一个名为“rx”的包

2) 在该包中创建一个名为“Observable”的空类,如下所示:

package rx;

public class Observable 


【讨论】:

我在项目中使用 RxJava 2 时遇到了同样的问题,Realm 仍然不支持 RxJava 2,恢复到 RxJava 1.x 解决了这个问题

以上是关于错误:任务“:app:compileDebugJavaWithJavac”执行失败。 > 扩展 RealmObject 类后编译失败的主要内容,如果未能解决你的问题,请参考以下文章

任务发送至错误打印机

当我使用发送邮件任务时,SSIS 包显示错误

Visual Studio 错误:“无法激活后台任务。后台任务激活失败。”

我收到以下错误:[GraphQL 错误]:消息:任务

Android错误:错误:任务':app:transformClassesWithDexForDebug'的执行失败

错误:打字稿任务检测没有为以下配置贡献任务