Android Studio 3.2 Canary 16 KotlinプロジェクトでシンボルDataBindingComponentが見つかりません


90

Android Studio 3.2 Canary 16でKotlinを有効にして新しいプロジェクトを作成しました。次に、データバインディングも有効にしましたが、DataBindingComponentクラスが見つからなかったというエラーが表示されます。

ここに私のプロジェクトのgradleがあります:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.android_plugin_version = '3.2.0-alpha10'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-alpha16'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

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

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

私のモジュールgradleファイル:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-kapt'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "net.julianonunes.myapp"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.android.support:design:27.1.1'
    kapt "com.android.databinding:compiler:3.1.2"
}

私の活動の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="data"
            type="net.julianonunes.myapp.RegisterData" />
    </data>

    ....
</layout>

そして、ここにビルド出力があります:

Executing tasks: [clean, :app:assembleDebug]

Configuration on demand is an incubating feature.

> Configure project :app
app: 'annotationProcessor' dependencies won't be recognized as kapt annotation processors. Please change the configuration name to 'kapt' for these artifacts: 'androidx.databinding:databinding-compiler:3.2.0-alpha16'.

> Task :clean
> Task :app:clean
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:compileDebugRenderscript
> Task :app:checkDebugManifest
> Task :app:generateDebugBuildConfig
> Task :app:prepareLintJar UP-TO-DATE
> Task :app:mainApkListPersistenceDebug
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:splitsDiscoveryTaskDebug
> Task :app:processDebugResources
> Task :app:generateDebugSources
> Task :app:dataBindingExportBuildInfoDebug
> Task :app:transformDataBindingBaseClassLogWithDataBindingMergeGenClassesForDebug
> Task :app:transformDataBindingWithDataBindingMergeArtifactsForDebug
> Task :app:dataBindingGenBaseClassesDebug
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.pom
Download https://dl.google.com/dl/android/maven2/com/android/databinding/compiler/3.1.2/compiler-3.1.2.jar
> Task :app:kaptGenerateStubsDebugKotlin
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:28: error: cannot find symbol
  protected ActivityMainBinding(DataBindingComponent _bindingComponent, View _root,
                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:46: error: cannot find symbol
      @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
                                                                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:57: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: /home/juliano/Documents/Projetos/myapp/app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/net/julianonunes/myapp/databinding/ActivityMainBinding.java:68: error: cannot find symbol
      @Nullable DataBindingComponent component) {
                ^
  symbol:   class DataBindingComponent
  location: class ActivityMainBinding
e: [kapt] An exception occurred: java.lang.NullPointerException
    at java.io.File.<init>(File.java:277)
    at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203)
    at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188)
    at android.databinding.annotationprocessor.ProcessDataBinding.doProcess(ProcessDataBinding.java:90)
    at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:65)
    at org.jetbrains.kotlin.kapt3.ProcessorWrapper.process(annotationProcessing.kt:131)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:87)
    at org.jetbrains.kotlin.kapt3.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:45)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:257)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:212)
    at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:95)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:97)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:107)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:84)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:374)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:64)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:365)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:130)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:161)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:63)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:107)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:96)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:920)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98)
    at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:950)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:919)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404)
    at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    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)

> Task :app:kaptDebugKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> Compilation error. See log for more details

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 8s
20 actionable tasks: 19 executed, 1 up-to-date

私のプロジェクトの何が問題になっていますか?

PS:この問題はAndroid Studio 3.1.2でも発生します


何か解決策はありましたか?
Brijesh Joshi

@BrijeshJoshi以下の私の回答を参照してください
Edijae Crusar

私にとって本当のエラーは実際にこの後に印刷されました。そのエラーを修正した後、これも消えます。
Mygod

1
私の場合、他のエラーはログに表示されませんでしたが、私の差分を確認した後、ktファイルにインポートされていない注釈が見つかりました。インポートを修正した後、ビルドは機能します。kaptプロセッサの問題のようです。
androidguy 2018年

1
android.databinding.enableV2=false android.enableExperimentalFeatureDatabinding = false。これを追加してgrade.properties私の問題を解決しました
MMK

回答:


58

データバインディングライブラリは、androidxリファクタリングの一部としてリファクタリングされています。

ここで、GoogleのMavenリポジトリからのデータバインディングアノテーションプロセッサ依存関係リンクを見つけました。

そこから実際のgradle依存関係を構築しました。

kapt "androidx.databinding:databinding-compiler:3.2.0-alpha16"

更新 Android Studio 3.2.0-beta01以降、データバインディングは依存関係を解決できるため、gradleファイルでアノテーションプロセッサの依存関係を宣言する必要がなくなりました。


4
この依存関係を削除し、以下の解決策をすべて試しましたが、何も機能していないようです
Sanjeev

どのスタジオバージョンを使用していますか?
サミュエルロバート

Android Studio 3.3 Canary 11 with Gradle 4.10
Sanjeev

エラー:シンボルDataBindingComponentが見つかりません。データバインディングを有効にしてGradleで処理できます。何が問題なのかわかりません
Sanjeev

GradleでDataBindingを有効にしましたか?
サミュエルロバート

61

次の設定で

Android Studio 3.2.1ビルド#AI-181.5540.7.32.5056338、2018年10月8日ビルドJRE:1.8.0_152-release-1136-b06 x86_64 JVM:JetBrains sro macOS 10.13.3によるOpenJDK 64ビットサーバーVM

そして、DataBindingは、これをアプリのbuild.gradleに含めるだけで有効になります

apply plugin: 'kotlin-kapt'

その後

    dataBinding {
        enabled = true
    }

そしてこれも私のgradle.wrapperプロパティで

android.databinding.enableV2=true

私は同じエラーがありました:

could not find the DataBindingComponent class.

私はそれらを100以上持っていました。これらのエラーは重要ではなく、根本的なエラーはIDEによって示されなかったことが判明しました。そのため、build.gradleにこれを追加することで、Kotlinコンパイラーが表示できるエラーの数を増やしました。

dataBinding {
    enabled = true
}
kapt {
        javacOptions {
            // Increase the max count of errors from annotation processors.
            // Default is 100.
            option("-Xmaxerrs", 500)
        }
    }

突然、これらすべての偽のエラーの真下で、マージの競合解決が失敗したために実際のエラーが発生したのを見ました😔


こんにちは、Javaプロジェクトでこれを行う方法を教えてください。
Tosinジョン

DataBindingComponentで最初に行うべき一連の偽のエラー。次に、エラーサイズを増やします。ダガーで誤ったスコープを使用すると問題が発生するのを確認しました。
filthy_wizard 2018

これは機能した唯一のソリューションでした..ありがとうございました。
Deepakガナチャリ

./gradlew AssembleDebugを使用してコマンドラインからビルドしているときにシンボルDataBindingComponentが見つかりません
Chetan Chaudhari

3
私は人生の何日もかけて、メッセージなしでエラーを検索しています...!ありがとうメイト、あなたは今年の男です:-D
m.zander

31

コンパイラーの依存関係(kapt "com.android.databinding:compiler:$ gradleVersion)を削除するだけで動作しました。どうやら、それは3.2.0からのバインディングプラグインで提供されています。


21

Android Studio 3.2の安定バージョンを既に使用している場合は、依存関係を削除するだけで、すでに含まれています。


3
解決してくれてありがとう。IDEにツールチップ/自動修正が追加されているはずです。
SpaceMonkey 2018

3
これを倍増します。私のエラーは少し異なりましたが、これが根本的な原因でした。誰かがそれをググる場合:Caused by: java.lang.NullPointerException at java.io.File.<init>(File.java:277) at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:77) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:203) at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:188) ...
cayleyh

20

Android Studio 3.3.1での同じエラー、Kotlinなし、純粋なJava、androidxを使用

build.gradleには

    dataBinding {
        enabled true
    }

gradle.propertiesには

android.useAndroidX=true
android.enableJetifier=true
android.databinding.enableV2=true

私は何時間も問題を解決してきましたが、次のように解決しました:

プロジェクト内のDataBindingComponentの空のインターフェースを一時的に宣言します(でsrc/main/java/androidx.databinding/DataBindingComponent.java

package androidx.databinding;

public interface DataBindingComponent {
}

コンパイルするとエラーはなくなります。しかし今、実際のルートエラーが明らかになります。実際にすべての問題を引き起こしていたが、どういうわけか飲み込まれたもの。私の場合、それは私がそれを間違って使用していたことを示すAutoValueから来ていました

error: Parameter type java.lang.Boolean of setter method should be boolean to match getter

それを修正してからダミーインターフェイスを削除すると、コンパイラーは再び幸せになります。


この回答をどうもありがとう。この問題のために私は多くの苦労をしました。
Farooq Zaman

ありがとうございました
kkl260

1
OMG、ありがとう、ありがとう、ありがとう。これはうまくいった!ありがとうございました!私はandroidxに移行しており、最終段階では、終了後にOPのような70のエラーが発生しました。あなたのトリックは13の根本的なエラーを明らかにしました。ありがとうと言いましたか?:D
アルベルトガリード

現在Android Studio 3.6.1です。実際のエラーを確認するには、このトリックに従う必要があります。:(
krishh

これは素晴らしい!ありがとうございました!
加賀武志

15

それだけの価値があるのですが、同様の問題がありました。それは、データバインディングに関連する不適切なRoomクエリの結果でした。


1
私のために動作し、チェックのためにtypeconverterを無効にし、それは動作しました
Murat VAROL

2
ありがとう!ルームについても問題がありました。私はArrayListそれがである必要があるクエリへの戻りとして使用していましたList
Van

1
これは悪いです。部屋にまったく関係のない問題がこの問題の原因です。
Carson Holzheimer

これはルームに限定されるものではありません。使用している他の注釈プロセッサは、コンパイル中に例外をスローし、DataBindingプロセッサが機能する前に失敗する可能性があります。
Vitor Hugo Schwaab

そしてその誤りは質問として述べられた誤りの間に埋もれたままでした。
Reejesh PK

14

私の場合、それは悪い短剣注釈でした。私は、providesメソッドではなく、モジュールにカスタムスコープを配置します。

¯\_(ツ)_/¯


1
アノテーション値とメソッドパラメータのインポートステートメントがありませんでした。Dagger 2.19を使用すると、上記のデータバインドの意味がわかりません。幸いなことに、ダガー2.21は私を正しい方向に向けました。
Eugen Pechanec

8

同じ問題がありました。

DataBindingのみに変更KaptするとannotationProcessor、問題が解決しました。


7

Android Studio 3.2に更新するときにこの問題に直面し、gradleプラグインを3.2.0から3.1.4に変更して問題なく動作します-> Gradleの問題だと思いますが、すぐに確実に更新されます


グラドルを変更してkapt "com.android.databinding:compiler:3.1.2"を削除してみてください
B.mansouri

私はkapt "com.android.databinding:compiler:3.1.2"をまったく使用していませんが、問題を理解しました。これは、間違ったパッケージ構造と、あるフォルダーから別のフォルダーへのファイルの移動が原因でした
Sanjeev

6

ダガーも原因かもしれません。 短剣のバージョンを2.17から2.16に戻すと、今のところこの問題を解決できます。

ディスカッション:https : //github.com/google/dagger/issues/1245

更新

Dagger 2.18はリリースされましたが、テストした後も動作しません(何か見逃していませんか?)。

Update2

Dagger 2.19も機能せず、ディスカッションはロックされています。

しかし、Google issuetrackeには、解決策/回避策があります。私はテストし、彼らは働いた。最新のダガーを使用したい場合はチェックしてください。

Update3

ダガーの問題はAndroid Studio 3.3で修正されています。


私の場合は、それがDagger2によって引き起こされていることもかなり確信しています。DataBindingComponentの公式ドキュメントではdaggerについても言及されています。「Dagger 2を使用している場合、開発者はこのインターフェイスを拡張し、拡張されたインターフェイスにコンポーネントとして注釈を付ける必要があります。」(ソース:developer.android.com/reference/android/databinding/…)。しかし、私はここで何をすべきか、そしてそれがエラーを修正するかどうかを正確に理解していません。
muetzenflo 2018年

@muetzenfloあなたの情報は有望なようです。そのコンポーネントを拡張して、エラーを修正できるかどうかを確認します。
デューイリード

@muetzenflo私は解決策を試しましたが、うまくいきませんでした。アプリの実行中にのみ効果があると思いますが、問題はコンパイル時に発生します。
デューイリード

2.19が
リリース

@ErnestZamelczykその通りです。しかし、私はissuetrackerにいくつかの回避策を見つけました。興味がある場合は、更新された回答を確認してください。
デューイリード

5

Androidアノテーションを使用していて、新しいバージョン4.5.1をリリースしたため、ようやく問題を解決しましたいて、1時間前にグレードプラグイン3.2.0をサポート。

私はこのバグを1週間探していましたが、今は満足しています。これもお役に立てば幸いです。


3

私の問題は、Loginモジュールではなくモジュールのデータバインディングを有効にしようとしたことAppです。追加後:

dataBinding {
    enabled = true
}

Appモジュールやからそれを取り出しLoginモジュール、それが働きました。


2

私はclasspath 'com.android.tools.build:gradle:3.2.0-beta05' 明示的な依存関係ありとなしで試しましたkapt "androidx.databinding:databinding-compiler:3.3.0-alpha06"

それでも同じ例外が発生します。

3.3.0-alpha06も試しましたが、何も変わりません。

更新: 2日後、問題を解決しました。私がしたことは、AndroidXへの移行のために問題があったすべてのファイルを手動で修正することです(インポートやXMLのパッケージの誤りなど)。さらに、Glideを4.7から4.8に更新する必要がありました。赤いファイルをすべて修正すると、問題は消えました。


2

これは私の最も愚かな間違いです!私は実際にDatabindingのプライベート変数を作成し、それがこの問題の原因でした。

だけを使用しlateinit var binding、それが働いた。

これは誰かを助けることができます!


これで問題は解決しました。ありがとう!これを見つけるのに2時間かかったが、下にスクロールしてもコメントが表示されなかった。:(
Oliver Metz

これがあなたを助けてくれてうれしい!データバインドエラーは解釈が難しいです!!
Kannan_SJD


2

私の場合、動的機能モジュールを使用している場合:

build.gradle(アプリ)

dataBinding {
    enabled true
}

これは、ルートと子のGradleファイルの両方で有効にする必要があります(kaptプラグインを追加することを忘れないでください)。


THANNNNKKKKKK YOOOOOUUUUUUUU FFS
ilansas

1

Android StudioをCanary 16に更新し、これをgradle.wrapper.propertiesで修正しましたdistributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip


2
Canary 16とGradle 4.7をすでに使用していますが、機能しません。
Juliano Nunes Silva Oliveira

私はAndroid Studio 3.3 Canary 11とGradle 4.10を使用していますが、エラーが発生するため、このソリューションは役に立ちません
Sanjeev

1

追加してエラーを解決しました

android.useAndroidX=true
android.enableJetifier=true

私のプロジェクトのgradle.propertiesファイル


私のために働いていませんでした。上記は何をしますか?どこで見つけたの?
Amir Uval

1
@auval android.useAndroidX:に設定されている場合true、このフラグは、今後 AndroidXの使用を開始することを示します。フラグが存在しない場合、Android Studioはフラグがに設定されているかのように動作しfalseます。 android.enableJetifier:に設定されている場合true、このフラグは、既存のサードパーティライブラリをAndroidX用に作成された場合と同様に自動的に変換するためのツールサポート(Android Gradleプラグインから)が必要であることを示します。フラグが存在しない場合、Android Studioはフラグがに設定されているかのように動作しfalseます。
Edijae Crusar

私にはうまくいきませんでした。私はAndroid Studio 3.3を使用しています。これらのパラメーターはすでに存在しています
Sanjeev

Android Xに移行してデータバインディングなどを使用する場合、これは間違いなく必要です。あるマシンで移行しましたが、gradle.propertiesがソース管理されていないため、別のマシンでエラーが発生しました
Daniel Wilson

1

私の場合、問題変更することで解決しました:

androidExtensions.experimental = true

(すなわち、ワンライナーとしてのgradle DSL)

androidExtensions {
    experimental = true
}

could not find the DataBindingComponent class私とは別にアノテーションにもerror: incompatible types: NonExistentClass cannot be converted to Annotation関連付けていましたkotlinx.android.parcel.Parcelize(@Parcelize)

Android Studio 3.3; gradle-4.10.1-all; tools.build:gradle 3.3.0


1

データバインディングでクラスをインポートするときに同じ問題がありましたが、それは存在しませんでした。また使用

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xmaxerrs" << "1000"
        }
    }
}

問題を見つけるためにすべてのエラーメッセージを受け取った。私のプロジェクトでは50に制限されていました。


1

私にとって、レイアウトファイルにエラーがありました。存在しない関数を参照しました。

android:text="@{() -> sleepTrackerViewModel.nightStrings}"

以下は解決策です:

android:text="@{sleepTrackerViewModel.nightStrings}"


0

試してみるべきこと:)私はGithubBrowserSampleをAndroid Studio 3.2(RC3)に入れようとしていました。メインのbuild.gradleでデータバインディングのバージョンが指定されていなくても、データバインディングで奇妙なエラーが何度も発生しました。解決策は、gradle.propertiesから次の2行削除することでした。

org.gradle.jvmargs=-Xmx4536m
android.databinding.enableV2=true

0

私の状況:

Android Studio v3.2.1

com.android.tools.build:gradle:3.2.1

https://services.gradle.org/distributions/gradle-4.10.2-all.zip

レイアウトからデータバインディングを削除し、アプリを再コンパイルしてから、データバインディングを再び追加することで、この問題が修正されたことがわかりました。

私は変更DataBindingUtil.setContentView(...)だけにsetContentView(...)して最低限に私の活動のレイアウトを削減しました:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"/>

</FrameLayout>

次に、データバインディングを少しずつ追加します。


0

私の場合、ファイルの1つにインポートエラーがありました。そのファイルを開くだけでインポートが自動的に行われ、その後プロジェクトがビルドされます。

ASがこれをまったく示さず、エラースタックトレースも行わなかったことは残念です。

投稿された回答から何も役に立たない場合-プロジェクト内のすべてのファイルをサーフィンし、正しくないインポートステートメントを持つファイルを探します。


0

ジェット機のバグです。ここでは、次の更新までの回避策を示します。これをプロジェクトグラドルに入れます。

buildscript {
    dependencies {
        classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02'
    }
}

0

dataroomライブラリを使用している場合は、DAOクラスの@Daoアノテーションを確認してください。私の場合、RoomDatabase'Daoのインターフェイスに@Daoを追加するのを忘れていました。


0

のように生成されたインターフェースのビルドエラーDataBindingComponentは、通常、誤解を招くものです。他のビルドエラーを探して最初に修正してから、再コンパイルしてください。


0

次のインポートをGradleから削除する必要がありました。

androidx.room:room-compiler:2.1.0-alpha06

奇妙な問題ですが、不要なインポートを削除しようとするだけで、機能するはずです。


0

Roomデータベースで使用する場合、インポートの問題があるか@TypeConverters、必要なTypeConverterを指定していないかをすべてのDaoクラスで確認してください。このエラーは誤解を招くものであり、プロジェクトレベルのGradleビルドツールのバージョンを最新に更新する場合は修正する必要があります。私classpath 'com.android.tools.build:gradle:3.4.0'は正しく使用してエラーを取得しました。


0

私の場合、ルームデータベースのアイテムクラスにエラーがありました...エラーは、ルームデータベースのアイテムクラスのメンバー変数に対してパブリックであるプライベートモディファイアに関するものでした。

スタックトレースを確認するには、コマンドライン./gradlew AssembleDebugを使用して探索します。

#Room #Database #Table class #DAO

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.