当前位置: 首页 > 知识库问答 >
问题:

更新到Google Play Services 11.8.0后,ProGuard不工作

胡云瀚
2023-03-14

将Google Play服务更新到11.8.0(从11.6.2)后,我的构建停止工作。

这就是我得到的:

计算堆栈大小时出现意外错误:Class=[com/google/android/gms/内部/zzao]method=[zzf(Ljava/lang/String;)J]Exc0019=[java.lang.IllegalArgumentExc0019](堆栈大小在[com/google/android/gms/内部/中的[23]invokestatic#146指令后变为负数zzao.zzf(Ljava/lang/String;)J])失败:构建失败,有一个异常。

我正在使用Android Studio 3.0.1和Gradle 4.4.1

我的应用程序构建。格雷德尔锉刀

buildscript {
    repositories {
        maven { url "html" target="_blank">https://maven.fabric.io/public" }
    }

    dependencies {
        classpath "io.fabric.tools:gradle:1.25.1"
    }
}

repositories {
    maven { url "https://maven.fabric.io/public" }
}

apply plugin: "com.android.application"
apply plugin: "io.fabric"
apply plugin: "let"
apply plugin: "realm-android"

android {
    compileSdkVersion project.androidSDKVersion
    buildToolsVersion("$androidBuildToolsVersion")

    defaultConfig {
        versionCode project.versionCode
        versionName project.versionName

        minSdkVersion project.androidMinSdkVersion
        targetSdkVersion project.androidTargetSdkVersion

        vectorDrawables.useSupportLibrary = true
        resConfigs "pl"
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources false
            crunchPngs false
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", "proguard-fresco.pro"
            signingConfig signingConfigs.release
        }
        debug {
            ext.enableCrashlytics = false
            ext.alwaysUpdateBuildId = false
        }
    }

    flavorDimensions "tier", "minApi"

    productFlavors {
        minApi21 {
            minSdkVersion project.androidMinDevSdkVersion
            dimension "minApi"
        }

        minApi16 {
            minSdkVersion project.androidMinSdkVersion
            dimension "minApi"
        }

        dev {
            multiDexEnabled true
            dimension "tier"
        }

        prod {
            multiDexEnabled false
            dimension "tier"
        }
    }

    variantFilter { variant ->
        def names = variant.flavors*.name

        if (names.contains("prod") && names.contains("minApi21")) {
            setIgnore(true)
        }
    }

    applicationVariants.all { variant ->
        appendVersionNameVersionCode(variant, defaultConfig)
    }

    lintOptions {
        checkReleaseBuilds false
        textReport true
        textOutput "stdout"
        fatal "UnusedResources"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    debugImplementation("com.android.support:multidex:$multidexVersion")

    implementation("com.android.support:support-fragment:$androidSupportVersion")
    implementation("com.android.support:support-annotations:$androidSupportVersion")
    implementation("com.android.support:appcompat-v7:$androidSupportVersion")
    implementation("com.android.support:design:$androidSupportVersion")
    implementation("com.android.support:recyclerview-v7:$androidSupportVersion")
    implementation("com.android.support:cardview-v7:$androidSupportVersion")
    implementation("com.android.support:customtabs:$androidSupportVersion")
    implementation("com.android.support.constraint:constraint-layout:$constraintLayoutVersion")
    implementation("com.android.installreferrer:installreferrer:$installReferrerVersion")

    implementation("com.google.android.gms:play-services-analytics:$playServicesVersion")
    implementation("com.google.android.gms:play-services-location:$playServicesVersion")
    implementation("com.google.android.gms:play-services-ads:$playServicesVersion")
    implementation("com.google.android.gms:play-services-auth:$playServicesVersion")

    implementation("com.google.firebase:firebase-core:$playServicesVersion")
    implementation("com.google.firebase:firebase-messaging:$playServicesVersion")
    implementation("com.google.firebase:firebase-config:$playServicesVersion")
    implementation("com.google.firebase:firebase-auth:$playServicesVersion")
    implementation("com.google.firebase:firebase-invites:$playServicesVersion")

    (...) // I had removed other dependencies from the list
}

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.all { output ->

        def versionCode = android.defaultConfig.versionCode

        output.versionCodeOverride = versionCode
        outputFileName = "${rootProject.name}-${variant.name}-${variant.versionName}-${versionCode}.apk"
    }
}

apply plugin: "com.google.gms.google-services"

共有2个答案

吴才俊
2023-03-14

我也有类似的问题。正如本文中所建议的,您只需要在构建中添加这些行。gradle文件:

...
release {
   debuggable false
   useProguard true
   ...
}
...

我也不得不删除亲后卫优化更换:

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

通过

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
滕星纬
2023-03-14

你不需要完全禁用优化,只需要对问题类进行优化。我也有同样的问题,通过在proguard规则中添加以下内容来解决。专业文件:

-keep class com.google.android.gms.internal.** { *; }
 类似资料:
  • 我把SonarQube升级到了4.2,现在Jenkins不工作了。T.T Jenkins和SonarQube安装在同一台服务器上,我使用的是mysql。此外,SonarQube的Jenkins设置指向mysql数据库。 ... 詹金斯的Maven版本是3.0.5 我没有在java项目中设置声纳maven插件。 它与声纳3.4.1工作正常,我没有改变詹金斯更新SonarQube后的任何设置。 这里是

  • php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so 以下是apache错误日志: [Tue Sep26 23:59:38.600410 2017][mpm_prefork:通知][pid 980]AH00169:捕获SIGTERM,关闭[Tue Sep26 23:59:38.622998 2017][cor

  • 我在使用nginx1.19版本。并在我的linux服务器上安装了PHP5-FPM。我的nginx php配置如下: 在我将nginx更新到1.6版之后。2和升级linux,我的php文件不工作。php请求返回白色页面,没有错误。 (在我的/var/run文件夹中找不到php-fpm.sock) 如何重新启动PHP?

  • 我已经将android studio更新到android studio V2.3.3(2017年6月),当我在android studio模拟器上启动应用程序时,adb停止显示日志 日志显示: $adb push C:\users\1\androidStudioProjects\don'twakemeApp4\app\build\outputs\apk\app-debug.apk/data/loc

  • 在我将Visual Studio 2017更新到15.3.2版本后,Git现在不工作,所以我无法提交/拉/推等。它给错误。同样得到这个错误: 另一个git进程似乎正在该存储库中运行,例如,由“git提交”打开的编辑器。请确保所有进程都已终止,然后重试。如果仍然失败,那么git进程可能已经在此存储库中崩溃:手动删除该文件以继续。