目前我的应用程序有点问题,大多数设备上的一切正常但是在一些三星和wiko上我得到了这个错误: java.lang.NoClassDefFoundError:android.support.v7.internal.view.menu.MenuBuilder
我在互联网上看到了一些答案,他们说在proguard文件中添加以下行,在我的情况下,这不起作用
position: absolute;
top: 10px;
right: 10px;
我的应用程序是2个模块的复合(所以我有2个proguard文件),1个模块用于主应用程序,另一个用于库
这是thr app模块的gradle文件:
import org.json.JSONArray;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class JSONFun {
public static List<String> firstKeysOf(JSONArray array) {
return IntStream.range(0, array.length())
.mapToObj(i -> array.getJSONObject(i).keys().next())
.collect(Collectors.toList());
}
}
有人有解决这个问题的方法吗?
答案 0 :(得分:1)
我确切地知道你在说什么,这是谷歌
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
的内容:-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}
##################################################################################
#
# App Compat
# https://stackoverflow.com/questions/22441366/note-android-support-v4-text-icucompatics-cant-find-dynamically-referenced-cl
#
##################################################################################
-dontnote android.support.**
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-dontwarn android.support.v7.**
# -keep class android.support.v7.** { *; } # <-- excess notes
# -keep interface android.support.v7.** { *; }
# Allow obfuscation of android.support.v7.internal.view.menu.**
# to avoid problem on Samsung 4.2.2 devices with appcompat v21
# see https://code.google.com/p/android/issues/detail?id=78377
-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;} # <-- important
来源: Note: android.support.v4.text.ICUCompatIcs: can't find dynamically referenced class libcore.icu.ICU和https://code.google.com/p/android/issues/detail?id=78377
答案 1 :(得分:1)
在遇到此问题之前,我没有在我的应用上使用proguard。我通过设置minifyEnabled true
并使用以下proguard配置
-dontshrink
-keep class !android.support.v7.internal.view.menu.**,** {*;}
-keepattributes **
-dontwarn **
我在此修复程序之前和之后在appthwack上测试了我的应用程序,以验证它是否有效。