Flutter应用在调试模式下可以运行,但在发布模式下会直接崩溃,且没有任何错误信息或异常。打开时就崩溃
如果这也发生在你身上,你可能想要考虑这个。
问题在于(对我而言,可能也会发生在你身上)我使用了像 ffmpeg_kit_flutter_new 和 just_audio. 这样的库。不知怎么的,Google的代码压缩/混淆工具R8会削减桥接类,从而导致立即崩溃。应用在调试时能工作,因为调试时R8不会运行。
buildTypes {
release {
signingConfig = signingConfigs.getByName("debug")
isMinifyEnabled = false
}
}
if there's still errors use,
buildTypes {
release {
signingConfig = signingConfigs.getByName("debug")
isMinifyEnabled = false
isShrinkResources = false
}
}
isMinifyEnabled = false -- is the minimal solution
我一开始以为是由Impeller引起的,但事实并非如此。需要注意的是,我也不知道这是否是永久性的修复,尽管Claude说一个好的ProGuard是永久的。
解决方案
ffmpeg是一个本地编译的库,具有固定的类名/包名,因此在Java/Kotlin代码中引用它们时不能改变类名或包名。正确的修复方法是把你在 proguard-rules.pro 中使用的所有包/类都加入进来,而不是为整个应用禁用混淆。
禁用混淆也是一个永久性的修复,但这会让整个应用的代码表现不佳,运行速度可能会变慢。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。