我正在尝试新的ViewBindings,但是我没有让它们工作。我在Android Studio 3.6.1
上。我刚刚创建了一个新项目,并将viewBinding.enabled = true
添加到我的模块build.gradle
中。但是当我尝试访问MainActivityBinding
类时,它说它不能解析符号。自动完成找不到任何类似绑定类的东西。我也尝试过使用Kotlin在一个不同的项目中使用,但是没有成功。AS4.0
也没有帮助。我需要做什么来生成ViewBinding
类?
我的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
viewBinding {
enabled = true
}
defaultConfig {
applicationId "com.example.myapplication"
minSdkVersion 29
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
8条答案
按热度按时间imzjd6km1#
我找不到我的
ViewBinding
文件,直到我突然意识到绑定是从XML
文件(“fragment_home.xml”)而不是从类(“HomeFragment.kt”)中获取它们的名称。我发现将每个ViewBinding看作是作为XML文件的委托创建的helper singleton是很有帮助的。
(编辑以删除过时的Gradle内容)
nhhxz33t2#
布局的根标签必须是
<layout>
。请确保它不是您的案例。不得不更改XML文件原始布局
至
vnjpjtjt3#
在我的案例中,我尝试系结View
添加了build.gradle(模块)
前一个是
im9ewurl4#
我刚刚改变了布局的名称,它工作得很好
ddrv8njm5#
如果你已经手动输入了片段/布局名称,请检查布局名称的关键字的拼写,如“fragment”,一个错误将生成一个同名的绑定文件
wz3gfoph6#
确保已在模块Gradle文件中添加构建功能
你可能正在处理ABCFragment,但是它的布局可能被命名为small_mistake. xml,那么你的BindUtil将如下所示。
7jmck4yq7#
此答案写在
11.11.2022
为了生成视图绑定,这里是解决方案:
将上述代码添加到应用程序模块中的android标签内。
你的前布局文件将被生成,当你创建新的布局时,它们将被看到...所以它只对新的布局文件起作用...你不需要在每个xml中添加布局标记...
t1rydlwq8#
有几件事要确保你已经做了:
我还没有检查,但我知道目前我的团队的一些成员已经报告绑定类不再是在Android工作室中解决,因为升级到3.6,但该项目仍然建立良好,所以他们实际上存在,可能是Android工作室的一个错误?