话说头一回使用databinding,删删改改不知道最后哪里写错了,编译可以通过,就是不能运行,而且报错不能定位信息。表示很尴尬,弄了一上午,终于找到了一个前辈的文章,发现和他的错一样,我就按照他的方法进行排查,首先我报的错误如下
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute (ExecuteActionsTaskExecuter.java:70) Caused by: org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details. at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction. doExecute(DefaultTaskClassInfoStore.java:173) at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction. execute(DefaultTaskClassInfoStore.java:134) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction (ExecuteActionsTaskExecuter.java:111) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:92) ... 30 moreq
其实我们只需要一个debug神器就行了
gradlew compileDebug --stacktrace -debug gradlew compileDebug --stacktrace -info在命令行输入上面的错误信息追踪,然后会得到
意思是:任务“compileDebug”在根项目“LayoutManager_sample”中是不明确的。需要把compileDebug替换为下面的选项:
'compileDebugAidl',
'compileDebugAndroidTestAidl',
'compileDebugAndroidTestJavaWithJavac',
'compileDebugAndroidTestNdk',
'compileDebugAndroidTestRenderscript',
'compileDebugAndroidTestShaders',
'compileDebugAndroidTestSources',
'compileDebugJavaWithJavac',
'compileDebugNdk',
'compileDebugRenderscript',
'compileDebugShaders',
'compileDebugSources',
'compileDebugUnitTestJavaWithJavac',
'compileDebugUnitTestSources'.
因为我最初报错的第一行是
org.gradle.api.tasks.TaskExecutionException:
Execution failed for task ':app:compileDebugJavaWithJavac'.
所以我把相应的错误追查信息命令行改为
gradlew compileDebugJavaWithJavac --stacktrace -debug
然后我得到了想要的信息
是因为我的viewmodel 没有继承Observable而已。以后不管studio再报什么错,我们只需要把报错的类型填上去,使用
gradlew 错误类型 --stacktrace -debug
就可以精确定位问题。感谢前辈的文章
https://www.cnblogs.com/woaixingxing/p/7754873.html