我利用 agora-rtc-engine 在 Flutter 中构建了一个视频会议应用程序 (https://pub.dev/packages/agora_rtc_engine)
我的应用程序在调试版本上运行良好,但每当我尝试在应用程序的发布版本中加入房间/视频会议时,它就会崩溃。该库的 pub-dev 页面提到这是由于 Flutter 的代码混淆造成的。他们展示的防止崩溃的方法已经过时了(proguard.rules)。那么,我现在该如何修复它?
这里是完整的源代码:https://github.com/CodeSarthak/Vartalap
如有任何帮助,我们将不胜感激。非常感谢!
通常情况下,您只需要添加一个带有很少设置的文件即可:D
代码: 创建文件:proguard-rules.pro
## Flutter wrapper
-keepattributes Signature
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class com.google.firebase.** { *; }
-keepattributes JavascriptInterface
-keepattributes Annotation
-dontwarn com.razorpay.**
-keep class com.razorpay.** { *; }
-optimizations !method/inlining/
-keepclasseswithmembers class * {public void onPayment*(...);}
-keepclassmembers class * {@android.webkit.JavascriptInterface ;}
-keepclassmembers class com.yourpackagehere.models.** { *; }
-dontwarn io.flutter.embedding.**
代码:
build.gradle 内部
buildTypes {
release {
shrinkResources false
signingConfig signingConfigs.release
minifyEnabled false
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
希望这对您有帮助:D
使用自定义规则创建 proguard 文件以排除我需要的内容,这对我有用,谢谢。