android-kotlin错误:无法解析的参考数据绑定& ActivityMainBinding [英] android-kotlin error : unresolved reference databinding & ActivityMainBinding
问题描述
我正在使用Android Studio 3.0 Canary 6版本.我在类中启用了dataBinding,并且代码未显示任何错误.但是,当我构建一个APK时,构建失败并显示以下错误:
I am using Android Studio 3.0 Canary 6 version. I've enabled dataBinding in my class and the code doesn't show any error. But, when I build an APK, the build fails and shows the following error:
Error:(8, 37) Unresolved reference: databinding
Error:(22, 26) Unresolved reference: ActivityMainBinding
Error:(38, 50) Unresolved reference: ActivityMainBinding
Error:(43, 52) Unresolved reference: ActivityMainBinding
Error:(46, 52) Unresolved reference: ActivityMainBinding
Error:(49, 52) Unresolved reference: ActivityMainBinding
Error:(52, 52) Unresolved reference: ActivityMainBinding
Error:(55, 52) Unresolved reference: ActivityMainBinding
Error:(58, 52) Unresolved reference: ActivityMainBinding
Error:(61, 52) Unresolved reference: ActivityMainBinding
Error:(64, 52) Unresolved reference: ActivityMainBinding
Error:(67, 52) Unresolved reference: ActivityMainBinding
Error:(70, 52) Unresolved reference: ActivityMainBinding
Error:(73, 52) Unresolved reference: ActivityMainBinding
Error:Execution failed for task ':app:compileDebugKotlin'.
Compilation error. See log for more details
顶级build.gradle文件如下:
The top level build.gradle file is as follows :
buildscript {
ext.kotlin_version = '1.1.3-2'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha6'
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()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
模块build.gradle文件如下:
The module build.gradle file is as follows :
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.jimil.calculator"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
dataBinding{
enabled = true
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation ('com.android.support.test.espresso:espresso-
core:3.0.1', {
exclude group: 'com.android.support', module: 'support-
annotations'
})
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
kapt 'com.android.databinding:compiler:3.0.0-alpha6'
}
kapt {
generateStubs = true
}
MainActivity.kt类是:
The MainActivity.kt class is :
import com.example.jimil.calculator.databinding.ActivityMainBinding
...
class MainActivity : AppCompatActivity() {
private var binding: ActivityMainBinding? = null
...
}
请帮助我解决构建错误.
Please help me solve the build error.
推荐答案
gradle中存在多个错误.
There are several errors in your gradle.
当前的Gradle-Version为3.0.0-beta3.这意味着您需要将类路径更改为
The current Gradle-Version is 3.0.0-beta 3. That means that you need to change your classpath to
classpath 'com.android.tools.build:gradle:3.0.0-beta6'
与您的依赖项相同
kapt "com.android.databinding:compiler:3.0.0-beta6"
您还应该在适当的文件夹中提供插件.
You should also provide your plugins in the proper folder.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
还应该启用编译选项,以使注释处理器使用Java8依赖关系(对于Kotlin,1.8版可能是必需的).
You should also enable compile options to have your annotation processors use Java8-dependencies (which may be required for Kotlin to target 1.8).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
完成此操作后invalidate your cache and restart
.
如果错误仍然存在,请检查Gradle Console. XML文件中可能存在错误,该错误使注释处理器停止生成数据绑定类.
If the error still persists check the Gradle Console. There may be an error in your XML File which stops your Annotation processor to generate the databinding classes.
这篇关于android-kotlin错误:无法解析的参考数据绑定& ActivityMainBinding的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!