2017-11-11 217 views
0

我想綁定視圖使用新的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

+0

它會編譯如果你刪除'android:text =「@ {textEditor.content}」'? – pskink

+0

是的,它編譯時,我刪除它 – Jois

+0

好吧,所以什麼在日誌? ('「內部編譯器錯誤,請參閱日誌以獲取更多詳細信息」) – pskink

回答

0

之後研發的時間,我發現我用的是第三方庫是這個問題:RichEditor。它不支持android: text