如何设置gradle和android studio来进行发布构build?

我想要构buildAndroid应用程序并开始签名。 为此,我需要有发布版本的apk。 谷歌文档build议只有Eclipse和ant的方式来发布版本: http : //developer.android.com/tools/publishing/app-signing.html#releasecompile

不过我找不到如何强制gradle build版本的apk。 build.gradle不给任何提示。 gradlew tasksbuild议,没有安装Releaseconfiguration,但存在卸载版本:

 Install tasks ------------- installDebug - Installs the Debug build installTest - Installs the Test build for the Debug build uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build uninstallRelease - Uninstalls the Release build uninstallTest - Uninstalls the Test build for the Debug build 

我的build.gradle

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } dependencies { compile 'com.android.support:support-v4:13.0.+' compile files('libs/android-support-v4.jar') compile project(":libraries:ActionBarSherlock") compile project(":libraries:CollabsibleSearchMenu") } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } } 

我错过了什么?

在android studio的最新版本中,你可以这样做:

 ./gradlew assembleRelease 

或简称aR 。 这将产生一个未签名的发行版apk。 构build一个签名的apk可以做同样的事情,或者你可以在Android Studio中使用Build – > Generate Signed Apk。

看到这里的文档

这是我的build.gradle供参考:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } buildTypes { release { } } 
  1. 打开Build Variants
  2. 设置debug release
  3. shift+f10跑!

那么Android Studio将执行assembleRelease任务并将xx-release.apk安装到您的设备上。

没有必要更新gradle在Android studio中进行发布应用程序。如果你是eclipse用户,那么它对你来说会很容易。 如果你是新的,然后按照步骤

1:转到工具栏部分的“Build”。 2:select“生成签名的APK …”选项。 在这里输入图像说明

3:填写打开的表格,然后转到下一步4:如果你已经有.keystore或者.jks,那么select那个文件,input你的密码和别名以及相应的密码。 5:或没有.keystore或.jks文件,然后点击创build新…button,如图1所示,然后填写表格。 在这里输入图像说明

上面的过程是手动进行构build。 如果你想android studio自动签名你的应用程序

在Android Studio中,您可以configuration您的项目以在构build过程中自动签署您的发行版APK:

在项目浏览器上,右键单击您的应用程序,然后select打开模块设置。 在“项目结构”窗口中,select模块下的应用程序模块。 点击签名标签。 select您的密钥库文件,input此签名configuration的名称(因为您可以创build多个),并input所需的信息。 在这里输入图像说明 图4.在Android Studio中创build一个签名configuration

点击Build Types标签。 select发布版本。 在Signing Config下,select您刚创build的签名configuration。 在这里输入图像说明 图5.在Android Studio中select一个签名configuration。

4:最重要的是在gradle中debuggable = false。

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

访问信息developer.android.com更多

要激活installRelease任务,只需要一个signingConfig 。 就这些。

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-任务; :

最后,只要插件可以安装(需要签名),插件就会为所有的构buildtypes(debugging,发布,testing)创build安装/卸载任务。

这是你想要的:

 Install tasks ------------- installDebug - Installs the Debug build installDebugTest - Installs the Test build for the Debug build installRelease - Installs the Release build uninstallAll - Uninstall all applications. uninstallDebug - Uninstalls the Debug build uninstallDebugTest - Uninstalls the Test build for the Debug build uninstallRelease - Uninstalls the Release build <--- release 

以下是如何获取installRelease任务:

示例build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } } apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion '22.0.1' defaultConfig { applicationId 'demo' minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName '1.0' } signingConfigs { release { storeFile <file> storePassword <password> keyAlias <alias> keyPassword <password> } } buildTypes { release { signingConfig signingConfigs.release } } }