all*_*lla 7 android android-databinding android-app-bundle
我有一个带有数据绑定的多模块项目(我使用Android App Bundle),ViewModels。但是,当我启用Proguard该应用程序时,发生以下错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{...MyActivity}: java.lang.IllegalStateException: DataBindingUtil.setConte… R.layout.my_activity) must not be null
Caused by: java.lang.IllegalStateException: DataBindingUtil.setConte… R.layout.my_activity) must not be null
at MyActivity.onCreate(MyActivity.kt:38)
当我删除模块并创建一个app模块时,一切正常。当我禁用时Proguard,它也可以正常工作。这是我的一部分proguard-rules.pro:
-dontwarn android.databinding.**
-keep class android.databinding.** { *; }
-keep class com.example.module1.databinding.** { *; }
-keep class com.example.module2.databinding.** { *; }
Run Code Online (Sandbox Code Playgroud)
在build.gradle:
minifyEnabled true
useProguard true
Run Code Online (Sandbox Code Playgroud)
因此错误指向以下代码行:
val binding: com.example.module1.databinding.MyActivityBinding =
DataBindingUtil.setContentView(this, R.layout.my_activity)
Run Code Online (Sandbox Code Playgroud)
也许有什么想法如何解决?
小智 7
只需将其添加到您的中proguard-rules.pro,其中module1和module2是启用了数据绑定的动态功能模块。
-keep class com.example.module1.DataBinderMapperImpl { *; }
-keep class com.example.module2.DataBinderMapperImpl { *; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |