简体   繁体   English

即使指定了 proguard 规则,Android 应用程序也会崩溃

[英]Android app crashes even after proguard rules are specified

I have a video calling Android app built with Twilio that I'm trying to publish.我有一个使用 Twilio 构建的视频通话 Android 应用程序,我正在尝试发布该应用程序。 I use the bundle tool to install the generated signed bundle in my connected android device.我使用捆绑工具在我连接的 android 设备中安装生成的签名捆绑包。 However, I'm get a runtime exception while answering an incoming video call.但是,我在接听传入的视频呼叫时遇到运行时异常。

JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "tvi.webrtc.WebRtcClassLoader" on path: DexPathList[[zip file "/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/base.apk", zip file "/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.ar.apk", zip file "/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.arm64_v8a.apk", zip file "/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.en.apk", zip file "/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.xxhdpi.apk"],nativeLibraryDirectories=[/data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/lib/arm64, /data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/base.apk!/lib/arm64-v8a, /data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.ar.apk!/lib/arm64-v8a, /data/app/com.demo.app-dOUL_EUaQs_CwBerkm7P8w==/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/com.demo.app-dOUL_EUaQs
2020-10-06 16:57:52.411 3350-3350/com.demo.app A/m.kaauh.patien: java_vm_ext.cc:570]   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:196)
2020-10-06 16:57:52.411 3350-3350/com.demo.app A/m.kaauh.patien: java_vm_ext.cc:570]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2020-10-06 16:57:52.411 3350-3350/com.demo.app A/m.kaauh.patien: java_vm_ext.cc:570]   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)

(The stack trace is very lengthy but I hope the issue is clear after reading the first line itself) (堆栈跟踪很长,但我希望在阅读第一行后问题就清楚了)

I use the default android.enableR8=true and the rules are specified in proguard-rules.pro我使用默认的android.enableR8=true并且规则在proguard-rules.pro中指定

# required by twilio plugin
-keep class tvi.webrtc.** { *; }
-dontwarn tvi.webrtc.**
-keep class com.twilio.video.** { *; }
-keep class com.twilio.common.** { *; }
-keepattributes InnerClasses

and my app build.gradle specifies the release configs我的应用程序build.gradle指定了发布配置

minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release

Not sure what I'm missing.不知道我错过了什么。 Any help or suggestion would be greatly appreciated.任何帮助或建议将不胜感激。

Thank you谢谢

You use tvI.webrtc but should tvO.webrtc您使用tvI.webrtc但应该使用tvO.webrtc

Just copy and paste code below只需复制并粘贴下面的代码

Voice Android 3.2.0+语音安卓 3.2.0+

# Twilio Programmable Voice
-keep class com.twilio.** { *; }
-keep class tvo.webrtc.** { *; }
-dontwarn tvo.webrtc.**
-keep class com.twilio.voice.** { *; }
-keepattributes InnerClasses

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM