我正在使用Android Studio开发一个Android应用程序,我有一个类,其中包含如下的静态属性:
当我在我的物理设备 - API32 上调试应用程序时,一切都正常工作。
但是当我尝试在模拟器API28上调试时,每当我尝试引用“静态”类的任何静态属性时,都会出现异常。
怎么修复这个问题?
编辑:使用模拟器API30不会抛出异常,但是这行代码不再按预期工作(它不仅仅移除变音符号,而是移除了所有内容)。
public static final Pattern DIACRITICS_AND_FRIENDS = Pattern.compile("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");
当我在我的物理设备 - API32 上调试应用程序时,一切都正常工作。
但是当我尝试在模拟器API28上调试时,每当我尝试引用“静态”类的任何静态属性时,都会出现异常。
FATAL EXCEPTION: main Process: com.example.myapp, PID: 10635
java.lang.ExceptionInInitializerError
at com.example.myapp.MainActivity.onCreate(MainActivity.java:40)
at android.app.Activity.performCreate(Activity.java:7136)
...
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.util.regex.PatternSyntaxException: U_ILLEGAL_ARGUMENT_ERROR
[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}]+
at java.util.regex.Pattern.compileImpl(Native Method)
at java.util.regex.Pattern.compile(Pattern.java:1344)
at java.util.regex.Pattern.<init>(Pattern.java:1328)
at java.util.regex.Pattern.compile(Pattern.java:950)
at com.example.myapp.MyStaticClass.<clinit>(MyStaticClass.java:21)
... 16 more
怎么修复这个问题?
编辑:使用模拟器API30不会抛出异常,但是这行代码不再按预期工作(它不仅仅移除变音符号,而是移除了所有内容)。
str = DIACRITICS_AND_FRIENDS.matcher(str).replaceAll("")