Android Studio:如何获得对齐的签名版APK?

时间:2015-07-30 05:50:06

标签: android gradle apk

我正在使用Android Studio,而对于其他项目,当我尝试生成已签名的APK时,我会更加轻松地获取app-release.apk文件。

但是在这个特定的项目中,我只能获得一个app-release-unaligned.apk文件。

与我的其他项目的主要区别在于使用transloadit jar和org.apache.httpcomponents库,我必须在我的graddle文件中写下packagingOptions字段。

这是我的build.grade文件

apply plugin: 'com.android.application'

android {
    signingConfigs {
    }
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId "com.bambinotes.bambinotessnap"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            zipAlignEnabled true
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENCE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
    }
    compile files('libs/transloadit-1.0.2.jar')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.anupcowkur:reservoir:2.0'
    compile 'com.android.support:cardview-v7:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.mcxiaoke.volley:library:1.0.16'
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
    compile 'com.android.support:support-v4:22.2.0'
}

**更新**

我刚刚发现我遇到的错误是什么,Android Studio在另一个文件夹中打开了finder,生成了app-debug和app-release-unordigned文件(我们可以考虑作为中间文件),app-release.apk文件是目录结构中的两个文件夹。

即使我因为知道我的麻烦的原因而感到尴尬,但我会留下这个问题,以确定将来是否会发生这种情况。

2 个答案:

答案 0 :(得分:12)

app-release.apk文件位于应用程序文件夹中。

有时Android Studio会显示另一个未对齐文件所在的目录,因此您只需要查找新创建的文件。

答案 1 :(得分:0)

您需要将签名配置添加到Gradle文件,有关详细信息,请参阅此答案How to create a release signed apk file using Gradle?