【发布时间】:2022-11-14 10:23:10
【问题描述】:
我试图在我的项目中使用Jetpack GameActivity,但我遇到了一个奇怪的 Proguard 问题。我的项目有 2 个模块,app 和 my-lib:
-
my-lib模块有MyActivity扩展GameActivity:api'androidx.games:games-activity:1.2.1'
-
app模块具有MainActivity扩展自my-lib模块的MyActivity实施项目(“:my-lib”)
当我在 Release 构建中构建项目并启用 Proguard 时,我遇到了本机崩溃:
-
Abort message: 'Unable to find method setWindowFlags'
=> 我尝试从我的 APK 中检查 GameActivity 类,setWindowFlags 方法根本不存在,这意味着 Proguard 已将其删除,这就是为什么 GameActivity 库的本机部分找不到该方法并抛出一个错误。
然后,我尝试通过添加这样的 Proguard 规则来修复它:
-
-keep, includedescriptorclasses class com.google.androidgamesdk.GameActivity { *; }
但不幸的是,我遇到了另一个原生崩溃:
-
Abort message: 'Unable to find field left'
=> 为什么会这样?我尝试再次检查 APK,但不知道为什么
无论如何,我该如何处理这种情况? Jetpack GameActivty 是否需要添加 Proguard 规则以保留将由原生部分使用的方法?
【问题讨论】:
标签: android android-ndk