Java 即使在指定了proguard规则之后,Android应用程序也会崩溃
我有一个用Twilio构建的视频通话Android应用程序,我正试图发布它。我使用bundle工具在连接的android设备中安装生成的签名bundle。但是,我在接听传入的视频呼叫时遇到运行时异常Java 即使在指定了proguard规则之后,Android应用程序也会崩溃,java,android,twilio,proguard,Java,Android,Twilio,Proguard,我有一个用Twilio构建的视频通话Android应用程序,我正试图发布它。我使用bundle工具在连接的android设备中安装生成的签名bundle。但是,我在接听传入的视频呼叫时遇到运行时异常 JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "tvi.webrtc
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