如何解决即使指定了proguard规则,Android应用程序也会崩溃
我正在尝试发布一个使用Twilio构建的视频通话Android应用。我使用捆绑软件工具将生成的签名捆绑软件安装在连接的android设备中。但是,在接听视频电话时遇到运行时异常。
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)
(堆栈跟踪很长,但我希望阅读完第一行本身后问题就可以解决了)
我使用默认的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
和我的应用build.gradle
指定了发布配置
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
signingConfig signingConfigs.release
不确定我缺少什么。任何帮助或建议,将不胜感激。
谢谢
解决方法
您使用 tvI.webrtc
但应该 tvO.webrtc
只需复制并粘贴下面的代码
语音安卓 3.2.0+
# Twilio Programmable Voice
-keep class com.twilio.** { *; }
-keep class tvo.webrtc.** { *; }
-dontwarn tvo.webrtc.**
-keep class com.twilio.voice.** { *; }
-keepattributes InnerClasses
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。