Android:Kotlin执行失败,试图使用Databinding
我想绑定视图使用新的android数据绑定库。我试图运行的应用程序,并得到了以下错误:Android:Kotlin执行失败,试图使用Databinding
Error:Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details
下面是我MainActivity.kt:
import android.databinding.DataBindingUtil
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import app.android.androidtexteditor.databinding.ActivityMainBinding
import app.android.androidtexteditor.models.TextEditor
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
var textEditor = TextEditor("content")
binding.textEditor = textEditor
binding.executePendingBindings()
}
}
下面是我TextEditor.kt:
class TextEditor(var content: String?)
以下是我的activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
<variable
name="textEditor"
type="app.android.androidtexteditor.models.TextEditor"/>
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
>
<jp.wasabeef.richeditor.RichEditor
android:id="@+id/text_editor_content"
android:text="@{textEditor.content}"
android:layout_width="327dp"
android:layout_height="478dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:padding="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
</layout>
注意:当从0123中删除android:text="@{textEditor.content}"
时,应用程序符合要求。
编辑:
下面是日志:
2017-11-11 14:13:24,608 [thread 118] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /private/var/folders/tw/_9p_vd716zz1mr4lkp_69h880000gn/T/AppTranslocation/3BF8BBE1-C94A-4F85-9008-1FC1B3EE13FB/d/Android Studio 3.1 Preview.app/Contents/jre/jdk/Contents/Home 2017-11-11 14:13:24,683 [thread 118] INFO - oject.common.GradleInitScripts - init script file sync.local.repo contents "allprojects {\n buildscript {\n repositories {\n maven { url '/private/var/folders/tw/_9p_vd716zz1mr4lkp_69h880000gn/T/AppTranslocation/3BF8BBE1-C94A-4F85-9008-1FC1B3EE13FB/d/Android Studio 3.1 Preview.app/Contents/gradle/m2repository'}\n }\n }\n repositories {\n maven { url '/private/var/folders/tw/_9p_vd716zz1mr4lkp_69h880000gn/T/AppTranslocation/3BF8BBE1-C94A-4F85-9008-1FC1B3EE13FB/d/Android Studio 3.1 Preview.app/Contents/gradle/m2repository'}\n }\n}\n" 2017-11-11 14:13:24,684 [thread 118] INFO - ild.invoker.GradleBuildInvoker - Build command line options: [--configure-on-demand, -Pandroid.injected.invoked.from.ide=true, --init-script, /private/var/folders/tw/_9p_vd716zz1mr4lkp_69h880000gn/T/sync.local.repo2551.gradle] 2017-11-11 1
4:13:24,684 [thread 118] INFO - xecution.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: --configure-on-demand -Pandroid.injected.invoked.from.ide=true --init-script /private/var/folders/tw/_9p_vd716zz1mr4lkp_69h880000gn/T/sync.local.repo2551.gradle 2017-11-11 14:13:24,921 [thread 100] INFO - idea.project.IndexingSuspender - Indexing suspended (context: Gradle Build) 2017-11-11 14:13:26,683 [thread 100] INFO - idea.project.IndexingSuspender - Indexing released (context: Gradle Build) 2017-11-11 14:13:26,686 [thread 116] INFO - roid.sdk.MessageBuildingSdkLog - com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) java.lang.NoSuchMethodException: com.android.ide.common.blame.Message.(com.android.ide.common.blame.Message$Kind, java.lang.String, java.lang.String, com.google.common.collect.ImmutableList) at java.lang.Class.getConstructor0(Class.java:3082) at j
ava.lang.Class.getConstructor(Class.java:1825) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:171) at org.jetbrains.kotlin.android.KotlinOutputParserHelper$simpleMessageConstructor$2.invoke(KotlinOutputParserHelper.kt:143) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.getSimpleMessageConstructor(KotlinOutputParserHelper.kt) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createNewMessage(KotlinOutputParserHelper.kt:272) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage(KotlinOutputParserHelper.kt:250) at org.jetbrains.kotlin.android.KotlinOutputParserHelper.createMessage$default(KotlinOutputParserHelper.kt:244) at org.jetbrains.kotlin.android.KotlinOutputParserHelperKt.parse(KotlinOutputParserHelper.kt:41) at org.jetbrains.kotlin.android.KotlinOutputParser.parse(KotlinOutputParser.java:28) at com.android.ide.common.blame.parser.ToolOutputParser.parseToolOutput(ToolOutputParser.java:86) at com.android.tools.idea.gradle.output.parser.BuildOutputParser.parseGradleOutput(BuildOutputParser.java:43) at com.android.tools.idea.gradle.project.build.invoker.GradleTasksExecutorImpl.lambda$collectMessages$5(GradleTasksExecutorImpl.java:487) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2017-11-11 14:13:26,687 [thread 116] INFO - roid.sdk.MessageBuildingSdkLog - Exception from KotlinOutputParser 2017-11-11 14:13:26,817 [e-1012-b01] INFO - ild.invoker.GradleBuildInvoker - Gradle build finished with 1 error(s) in 2s 79ms 2017-11-11 14:13:26,868 [e-1012-b01] INFO - pl.ProjectRootManagerComponent - project roots have changed 2017-11-11 14:13:27,145 [thread 119] INFO - .diagnostic.PerformanceWatcher - Pushing properties took 1ms; general responsiveness: ok; EDT responsiveness: ok 2017-11-11 14:13:27,184 [thread 119] INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 38ms; general responsiveness: ok; EDT responsiveness: ok 2017-11-11 14:13:28,217 [J pool 1/4] WARN - hes.resolve.KotlinCacheService - Could not find correct module information. Reason: Analyzing element of type class com.android.tools.idea.databinding.LightGeneratedComponentClass with no containing file Text: null 2017-11-11 14:13:28,217 [J pool 1/4]
WARN - .resolve.jvm.JvmAnalyzerFacade - Java referenced null from LibraryInfo(libraryName=com.android.databinding:library-1.3.1) Referenced class was: JavaClassImpl: DATA binding component class
2017-11-11 14:13:28,217 [J pool 1/4] WARN - hes.resolve.KotlinCacheService - Could not find correct module information. Reason: Analyzing element of type class com.android.tools.idea.databinding.LightGeneratedComponentClass with no containing file Text: null 2017-11-11 14:13:28,217 [J pool 1/4]
WARN - .resolve.jvm.JvmAnalyzerFacade - Java referenced null from LibraryInfo(libraryName=com.android.databinding:library-1.3.1) Referenced class was: JavaClassImpl: DATA binding component class
之后研发的时间,我发现我用的是第三方库是这个问题:RichEditor
。它不支持android: text
。
它会编译如果你删除'android:text =“@ {textEditor.content}”'? – pskink
是的,它编译时,我删除它 – Jois
好吧,所以什么在日志? ('“内部编译器错误,请参阅日志以获取更多详细信息”) – pskink