2016-10-26 3 views
0

Я просто пытаюсь обновить базу данных Царства от версии 0.86 до версии 2.1.Невозможно вызвать метод hasAnnotation() для нулевого объекта

, но перед этой ошибкой Наряду с Android студия

Error:Execution failed for task ':app:transformClassesWithRealmTransformerForDebug'. 
> Cannot invoke method hasAnnotation() on null object 

UPDATE (3)

clean assemble --stacktrace --info 
    Starting Build 
    Creating configuration compile            
    Creating configuration apk 
    Creating configuration provided 
    Creating configuration wearApp 
    Creating configuration annotationProcessor 
    Creating configuration androidTestCompile 
    Creating configuration androidTestApk 
    Creating configuration androidTestProvided 
    Creating configuration androidTestWearApp 
    Creating configuration androidTestAnnotationProcessor 
    Creating configuration testCompile 
    Creating configuration testApk 
    Creating configuration testProvided 
    Creating configuration testWearApp 
    Creating configuration testAnnotationProcessor 
    Creating configuration debugCompile 
    Creating configuration debugApk 
    Creating configuration debugProvided 
    Creating configuration debugWearApp 
    Creating configuration debugAnnotationProcessor 
    Creating configuration testDebugCompile 
    Creating configuration testDebugApk 
    Creating configuration testDebugProvided 
    Creating configuration testDebugWearApp 
    Creating configuration testDebugAnnotationProcessor 
    Creating configuration releaseCompile 
    Creating configuration releaseApk 
    Creating configuration releaseProvided 
    Creating configuration releaseWearApp 
    Creating configuration releaseAnnotationProcessor 
    Creating configuration testReleaseCompile 
    Creating configuration testReleaseApk 
    Creating configuration testReleaseProvided 
    Creating configuration testReleaseWearApp 
    Creating configuration testReleaseAnnotationProcessor 
    Parsing the SDK, no caching allowed 
    Parsing D:\Android\sdk\add-ons\addon-google_apis-google-23\package.xml 
    Parsing D:\Android\sdk\build-tools\23.0.2\package.xml 
    Parsing D:\Android\sdk\build-tools\23.0.3\package.xml 
    Parsing D:\Android\sdk\build-tools\24.0.0-preview\package.xml 
    Parsing D:\Android\sdk\build-tools\24.0.1\package.xml 
    Parsing D:\Android\sdk\build-tools\24.0.3\package.xml 
    Parsing D:\Android\sdk\build-tools\25.0.0\package.xml 
    Parsing D:\Android\sdk\extras\android\m2repository\package.xml 
    Parsing D:\Android\sdk\extras\android\support\package.xml 
    Parsing D:\Android\sdk\extras\google\google_play_services\package.xml 
    Parsing D:\Android\sdk\extras\google\m2repository\package.xml 
    Parsing D:\Android\sdk\extras\google\usb_driver\package.xml 


    * Exception is: 
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithRealmTransformerForDebug'. 
      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:66) 
      at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
      at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) 
      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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) 
      at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) 
      at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66) 
      at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) 
      at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25) 
      at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110) 
      at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) 
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
      at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) 
      at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) 
      at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) 
      at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153) 
      at org.gradle.internal.Factories$1.create(Factories.java:22) 
      at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 
      at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53) 
      at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150) 
      at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32) 
      at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98) 
      at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92) 
      at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91) 
      at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63) 
      at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92) 
      at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83) 
      at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99) 
      at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) 
      at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 
      at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48) 
      at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30) 
      at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81) 
      at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46) 
      at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51) 
      at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28) 
      at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43) 
      at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173) 
      at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:239) 
      at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:212) 
      at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) 
      at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
      at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
      at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
      at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:205) 
      at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 
      at org.gradle.launcher.Main.doAction(Main.java:33) 
      at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
      at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:55) 
      at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:36) 
      at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
      at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) 
      at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) 
      at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 
    Caused by: java.lang.NullPointerException: Cannot invoke method hasAnnotation() on null object 
      at io.realm.transformer.RealmTransformer$_transform_closure7.doCall(RealmTransformer.groovy:115) 
      at io.realm.transformer.RealmTransformer.transform(RealmTransformer.groovy:112) 
      at com.android.build.api.transform.Transform.transform(Transform.java:290) 
      at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:178) 
      at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:174) 
      at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156) 
      at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173) 
      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) 
      at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245) 
      at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221) 
      at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232) 
      at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210) 
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) 
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 
      ... 60 more 


    BUILD FAILED 

    Total time: 20.365 secs 
    Stopped 0 compiler daemon(s). 

Без какой-либо причины это остановило приложение, чтобы получить работу.

Любое решение для этого?

+0

Там какая-то ошибка, по крайней мере, один из ваших классов моделей Realm. Не было ли этого сообщения об ошибке? – EpicPandaForce

+0

@EpicPandaForce, но я ничего не меняю в своей схеме классов, она работает с предыдущей версией, вы имеете в виду, что некоторые аннотации устарели? – Loai

+0

@EpicPandaForce есть только сообщение об ошибке в сборке – Loai

ответ

1

Так в соответствии с вашими трассировки стека, this line fails in the Realm-Transformer:

def allModelClasses = allClassNames

.findAll { it.endsWith('RealmProxy') }

.collect { classPool.getCtClass(it).superclass }

.findAll { it.hasAnnotation(RealmClass.class) || it.superclass.hasAnnotation(RealmClass.class) }

Так он говорит: «Если у вас есть класс, который заканчивается RealmProxy», который вы do as per this question where you literally have a class named RealmProxy, то он пытается получить его суперкласс (который должен быть RealmObject или RealmModel), которые он не имеет, потому что это не является частью Королевства схема, поэтому он возвращает null и сбой трансформатора.

Решение 1: переименовать RealmProxy класс что-то подобное, или что-то RealmFacade

или

Решение 2: расширить некоторый случайный класс с RealmProxy, который не имеет @RealmClass аннотацию.

public abstract class RealmProxyBase { 
} 

public class RealmProxy extends RealmProxyBase implements Closeable { 
    // ... 

(в то же время, я подал вопрос для него here)

+0

Большое спасибо, мой дорогой, что заставляет меня уверен, что мой код в порядке, что у меня есть ** RealmProxy ** До этого в предыдущей версии, и он отлично работает без каких-либо проблем, Any Как спасибо вам и буду готов к будущему Вопрос: D – Loai

+0

Ну да, но Realm добавил Realm-Transformer в 0.88.0 и выше, и никто раньше не сталкивался с этим NPE раньше. Тем не менее, «решение 2» довольно просто, вот что я сделал бы. – EpicPandaForce

Смежные вопросы