[英]App bundle Proguard error
我正在嘗試將一個應用程序上傳到Google Play控制台,但其說法是Your Android App Bundle contains an invalid Proguard deobfuscation file.
我的Proguard文件是
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
-dontwarn org.greenrobot.greendao.database.**
-dontwarn rx.**
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-dontwarn org.codehaus.**
-dontwarn com.google.errorprone.annotations.**
-keep class android.support.v7.widget.SearchView { *; }
#Glide
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep class com.bumptech.glide.GeneratedAppGlideModuleImpl
應用程序級別build.gradle:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'org.greenrobot.greendao'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.firebase-perf'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
def gitSha = 'git rev-parse --short HEAD'.execute().text.trim()
project.logger.debug('git sha: ' + gitSha)
def applicationName = "App name"
android {
signingConfigs {
release {
...
}
}
compileSdkVersion 27
buildToolsVersion '28.0.0'
buildTypes {
release {
applicationIdSuffix ".release"
signingConfig signingConfigs.release
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
renameAPK(applicationName,'RELEASE')
}
debug {
applicationIdSuffix ".debug"
multiDexEnabled true
renameAPK(applicationName,'DEBUG')
}
}
defaultConfig {
applicationId "com.app.id"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
def renameAPK(applicationName,buildType) {
def formattedDate = new Date().format('dd-MM-yy')
project.ext.set("archivesBaseName", "${applicationName}-${buildType}-${formattedDate}".toString())
}
greendao {
schemaVersion 2
}
dependencies {
implementation "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
implementation "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersion"
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'
implementation "com.google.android.gms:play-services-location:15.0.1"
implementation "com.google.firebase:firebase-core:16.0.1"
implementation "com.google.firebase:firebase-messaging:17.1.0"
implementation "com.google.firebase:firebase-perf:16.0.0"
implementation 'com.firebase:firebase-jobdispatcher:0.8.5'
implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterKnifeVersion"
implementation "com.jakewharton:butterknife:$rootProject.butterKnifeVersion"
implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
annotationProcessor "com.google.dagger:dagger-android-processor:$rootProject.dagger2Version"
implementation "com.google.dagger:dagger-android-support:$rootProject.dagger2Version"
compileOnly 'com.google.code.findbugs:jsr305:3.0.2'
implementation 'org.greenrobot:greendao:3.2.2'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true
}
implementation 'javax.annotation:javax.annotation-api:1.3.2'
annotationProcessor "com.github.bumptech.glide:compiler:$rootProject.glideVersion"
implementation "com.github.bumptech.glide:glide:$rootProject.glideVersion"
implementation 'com.joanzapata.iconify:android-iconify-fontawesome:2.2.2'
implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
implementation 'com.jakewharton.timber:timber:4.6.0'
implementation 'us.belka:androidtoggleswitch:1.2.2'
implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
implementation 'com.github.jkwiecien:EasyImage:1.3.1'
implementation 'id.zelory:compressor:2.1.0'
testImplementation 'junit:junit:4.12'
testImplementation "org.mockito:mockito-core:$rootProject.mockitoVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
testAnnotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger2Version"
androidTestAnnotationProcessor "com.google.dagger:dagger-android-processor:$rootProject.dagger2Version"
androidTestImplementation "org.mockito:mockito-core:$rootProject.mockitoVersion"
androidTestImplementation("com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion", {
exclude group: "com.android.support", module: "support-annotations"
})
androidTestImplementation "com.android.support.test.espresso:espresso-intents:$rootProject.espressoVersion"
debugImplementation "com.amitshekhar.android:debug-db:$rootProject.debugDBVersion"
devImplementation "com.amitshekhar.android:debug-db:$rootProject.debugDBVersion"
debugImplementation "com.squareup.leakcanary:leakcanary-android:$rootProject.leakCanaryVersion"
debugImplementation "com.android.support:multidex:$rootProject.multidexVersion"
devImplementation "com.android.support:multidex:$rootProject.multidexVersion"
devImplementation "com.squareup.leakcanary:leakcanary-android:$rootProject.leakCanaryVersion"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$rootProject.leakCanaryVersion"
}
apply plugin: 'com.google.gms.google-services'
configurations.all {
resolutionStrategy.force "com.android.support:support-annotations:$rootProject.supportLibraryVersion"
}
和頂級build.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha02'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:3.2.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// Define versions in a single place
ext {
// App dependencies
supportLibraryVersion = '27.1.1'
glideVersion = '4.7.1'
retrofitVersion = '2.3.0'
dagger2Version = '2.16'
butterKnifeVersion = '8.8.1'
debugDBVersion = '1.0.1'
playServicesVersion = '12.0.1'
leakCanaryVersion = '1.5.4'
multidexVersion = '1.0.3'
//Test dependencies
junitVersion = '4.12'
espressoVersion = '2.3-alpha'
mockitoVersion = '2.7.1'
}
謝謝。
您的Android應用程序捆綁包包含無效的Proguard去模糊文件。
閱讀Decode an obfuscated stack trace
。
ProGuard每次運行時都會創建一個mapping.txt
文件,該文件顯示了映射到混淆名稱的原始類,方法和字段名稱。 ProGuard將文件保存在應用程序<module-name>/build/outputs/mapping/release/ directory
。
請注意,每次使用ProGuard創建發布版本時, mapping.txt
文件都會被覆蓋,因此,每次發布新版本時,都必須仔細保存副本。 通過為每個發行版保留一個mapping.txt
文件的副本,如果用戶從較早版本的應用程序提交了經過混淆的堆棧跟蹤,就可以調試問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.