Android应用程序崩溃,出现异常.class.missing.Unknown_



我刚刚发布了我的应用程序的最新版本,但我在Google Play控制台中看到了一些用户的崩溃。

exception.class.missing._Unknown_: 
at com.android.icu.util.regex.PatternNative.compileImpl (Native Method)
at com.android.icu.util.regex.PatternNative.<init> (PatternNative.java:39)
at com.android.icu.util.regex.PatternNative.create (PatternNative.java:35)
at java.util.regex.Pattern.compile (Pattern.java:1426)
at java.util.regex.Pattern.<init> (Pattern.java:1401)
at java.util.regex.Pattern.compile (Pattern.java:959)
at com.mymedia.android.tracker.custom.MyInputFilter.<init> (MyInputFilter.java:30)

这是说它找不到本机类/方法com.android.icu.util.regex.PatternNative.compaileImpl((吗?还是我的类MyInputFilter

我为这个新版本做了一些不同的事情,我想这可能是造成这种情况的原因。

  1. 我发布了一个应用程序捆绑包,而不是APK
  2. 我添加了这些Proguard/收缩&build.gradle中的obfusion设置
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable false
}
}

我已经查看了Proguard构建输出文件usage.txt,但我没有看到任何关于PatternNative被删除或任何可能导致此问题的内容。

您的问题可能是MyInputFilter.java:30中的正则表达式混淆。尝试通过将以下行添加到proguard-rules.pro文件中来防止类字段混淆:

-keepclassmembers class com.mymedia.android.tracker.custom.MyInputFilter {
*;
}

在我的例子中,我只是错误地将应用程序中的所有活动都设置为CCD_ 3与值CCD_。但我们应该至少设置其中一个,通常是要使用的主要活动:

android:exported=true

这将只允许操作系统启动应用程序的主要活动。

我希望它能有所帮助。

最新更新