我使用 Android Studio 3.6-RC1 和构建工具版本 3.6.0-rc01 并遇到了 ViewBinding 功能的问题:
我有带有以下标记的 activity_test.xml 文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/view_merged"
layout="@layout/merge_view" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
和 merge_view.xml 带有以下标记:
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Merge view" />
</merge>
Run Code Online (Sandbox Code Playgroud)
活动代码如下所示:
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityTestBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.viewMerged.label.text = "New text"
}
}
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试从合并布局访问 TextView 时,应用程序抛出异常并显示消息 java.lang.NullPointerException: Missing required view with ID: viewMerged.
生成的绑定类如下所示:
public final class ActivityTestBinding implements ViewBinding {
@NonNull
private final …Run Code Online (Sandbox Code Playgroud)