zipalign验证失败resources.arsc BAD-1

时间:2016-06-27 06:40:00

标签: android compilation zipalign

enter image description here

我尝试将我的应用程序上传到gplay但因为我的apk没有拉链签名而失败。我尝试zipalign但我得到验证失败。真的没有想法,有人请告诉我该怎么做。 提前谢谢。

7 个答案:

答案 0 :(得分:11)

我找到了一种更简单的方法 - 只需从命令行对齐.. TWICE!在对齐两次后,我能够上传我的apk。

删除旧文件并重命名第二个并重新对齐..

答案 1 :(得分:5)

无需手动执行此操作:

buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                zipAlignEnabled true 
               //uncomment for automatically zip aligned by studio
            }
        }

的build.gradle

 set classpath 'com.android.tools.build:gradle:2.2.0-alpha3'

classpath 'com.android.tools.build:gradle:2.1.2'

请参阅我的回答here

答案 2 :(得分:4)

以防其他人在gradle插件“ 3.6.0”及更高版本中遇到相同的问题,并且因为我花了几个小时试图对其进行跟踪。

Gradle Plugin 3.6.0是页面对齐和未压缩的本地库打包 https://developer.android.com/studio/releases/gradle-plugin?hl=el#3-6-0

解决方法是通过添加来禁用本机库的未压缩打包

android:extractNativeLibs="true"

作为应用程序标签上的属性添加到您的AndroidManifest.xml。

答案 3 :(得分:3)

尝试以下建议

buildTypes {
        release {
        }
        debug{
            debuggable false
        }
    }

或者在Manifest中设置属性android:debuggable =" false" 生成构建并运行zipalign工具验证成功。

答案 4 :(得分:0)

聚会晚了一点,但是最近在从命令行对齐未签名的apk时遇到了同样的问题。 zipalign命令失败,因为我在gradle文件中有以下代码-

buildTypes {
    debug {
        debuggable true
    }
    release {
        debuggable true
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        zipAlignEnabled true
    }
}

Zipalign失败,但没有指出发行版本不能标记为debuggable的事实。当发行版本标记为Build > Generate Signed Bundle / APK时,Android Studio debuggable没问题,因此在签名的APK生成期间,它必须覆盖某些gradle配置。

希望这对某人有帮助。

答案 5 :(得分:0)

当您尝试zipalign并签署调试apk时,就会出现此问题。

那不是一个好主意。

代替使用命令

./gradlew assembleRelease

生成发布未签名的APK。然后压缩输出的apk。

或使用@Nilesh Senta给出的答案

答案 6 :(得分:0)

我已阅读到您需要在签名之前对齐APK;如果您先签名然后对齐,则会破坏签名。那是虚假的信息。首先签名,然后zipalign,然后上传。