Android 三星和 wiko 的 appCompat 问题
Android appCompat issue with samsung and wiko
目前我的应用程序有点问题,在大多数设备上一切正常,但在某些三星和 wiko 上我收到此错误:
java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
我在 Internet 上看到一些答案,他们说在混淆文件中添加以下行,在我的情况下这行不通
-keep class !android.support.v7.internal.view.menu.**, ** { *; }
我的应用程序由 2 个模块组成(所以我有 2 个混淆文件),1 个模块用于主应用程序,另一个用于库
这是我的应用程序模块的 gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.refresh.quickeer"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug
{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:cardview-v7:22.1.0'
compile 'com.android.support:recyclerview-v7:22.+'
compile 'com.android.support:palette-v7:21.0.0'
compile 'com.xgc1986.android:parallaxpagertransformer:1.0.3'
compile project(':library')
}
有人可以解决这个问题吗?
我很清楚你在说什么,这里是 Google
这是我用来修复的 java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
:
-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}
以下是适用于支持 v4 和 v7 的所有内容:
##################################################################################
#
# App Compat
#
#
##################################################################################
-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 and https://code.google.com/p/android/issues/detail?id=78377
在遇到这个问题之前,我没有在我的应用程序上使用混淆器。我通过设置 minifyEnabled true
并使用以下 proguard 配置
解决了这个问题
-dontshrink
-keep class !android.support.v7.internal.view.menu.**,** {*;}
-keepattributes **
-dontwarn **
我在此修复前后在 appthwack 上测试了我的应用程序,以验证它是否有效。
目前我的应用程序有点问题,在大多数设备上一切正常,但在某些三星和 wiko 上我收到此错误: java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
我在 Internet 上看到一些答案,他们说在混淆文件中添加以下行,在我的情况下这行不通
-keep class !android.support.v7.internal.view.menu.**, ** { *; }
我的应用程序由 2 个模块组成(所以我有 2 个混淆文件),1 个模块用于主应用程序,另一个用于库
这是我的应用程序模块的 gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.refresh.quickeer"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug
{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:cardview-v7:22.1.0'
compile 'com.android.support:recyclerview-v7:22.+'
compile 'com.android.support:palette-v7:21.0.0'
compile 'com.xgc1986.android:parallaxpagertransformer:1.0.3'
compile project(':library')
}
我很清楚你在说什么,这里是 Google
这是我用来修复的 java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
:
-keep class !android.support.v7.internal.view.menu.**,android.support.** {*;}
以下是适用于支持 v4 和 v7 的所有内容:
##################################################################################
#
# App Compat
#
#
##################################################################################
-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 and https://code.google.com/p/android/issues/detail?id=78377
在遇到这个问题之前,我没有在我的应用程序上使用混淆器。我通过设置 minifyEnabled true
并使用以下 proguard 配置
-dontshrink
-keep class !android.support.v7.internal.view.menu.**,** {*;}
-keepattributes **
-dontwarn **
我在此修复前后在 appthwack 上测试了我的应用程序,以验证它是否有效。