使用Gradle打包apk,gradle打包apk

來源:互聯網
上載者:User

使用Gradle打包apk,gradle打包apk

前提

Eclipse 4.4.1

ADT 23.0.4

Gradle 2.2.1


流程:

1.安裝gradle以及配置環境變數就不多說了,網上搜一下一大堆。


2.首先在eclipse中選中的自己項目,然後export-》Android-》Genearte Gradle build files

此時,會在專案檔的最下面會出現一個build.gradle的檔案,這個就是gradle的自動打包的設定檔。


3.我們還需要把項目轉為為Gradle項目(如果你建立項目的時候以及功能選中了Gradle項目,就忽略這個步驟),選中自己的項目,右擊滑鼠Configure->Conver to Gradle Project。稍等一會,項目就會自動轉化成功。此時你再右擊項目的時候就會出現Gradle這個選項。


4.我們還需要更新一下Gradle的引用資源,以免打包的時候出現資源檔丟失,右擊Gradle-》Refresh All。如果出現無法找到資源檔,檢查一下項目的Properties的Java Path的Resource有沒有引用項目的gen和src目錄。


5.配置build.gradle

buildscript {    repositories {        mavenCentral()    }    dependencies {        classpath 'com.android.tools.build:gradle:0.14.+'    }}apply plugin: 'android'dependencies {    compile fileTree(dir: 'libs', include: '*.jar')   ....//你所應用的包,這裡是每個項目不同,不需要更改}android {    compileSdkVersion 17    buildToolsVersion "21.1.2"signingConfigs {myConfig{storeFile file("/home/eminem/my.keystore")  //雙引號裡面填是簽名檔案的絕對路徑,我這裡的是Ubuntu系統storePassword "簽名的密碼"keyAlias "包名"keyPassword "簽名應用的密碼"}}buildTypes{release {signingConfig signingConfigs.myConfig} }    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')               packagingOptions {        exclude 'META-INF/DEPENDENCIES'        exclude 'META-INF/NOTICE'        exclude 'META-INF/LICENSE'        exclude 'META-INF/LICENSE.txt'        exclude 'META-INF/NOTICE.txt'  }    lintOptions {        <span style="white-space:pre"></span>abortOnError false     }      }}


修改完畢儲存。

注意:如果你的項目引用了一些Library Project,你還需要吧整個項目目錄最外層的項目目錄中的build.gradle的

 dependencies {        classpath 'com.android.tools.build:gradle:0.14.+'    }


修改一下。


6.修改項目中的gradle配置

你還需要修改項目目錄中的gradle-》wrapper-》gradle-wrapper.properties 修改distributionUrl指向的版本

distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip   


7.修改完畢,在終端或者windows下的運營中,開啟項目的路徑,執行gradle clean 等built的success後再執行gradle build。打包成功後,會在項目的build-》outputs-》apk

在這個目錄可以看到四個apk,分辨是debug版,debug未簽名版,發布簽版本,發布未簽版。那需要的apk去用就。


其他:如果你的項目中調用jni,也就是包含了so檔案,這個時候你還需要添加這些內容

在progurad-project.txt

//noinspection alltask copyNativeLibs(type: Copy) {    // third party lib so    from(new File(projectDir, 'libs')) { include 'armeabi/*.so' }    into new File(buildDir, 'native-libs')}tasks.withType(JavaCompile) {    compileTask ->        //noinspection all        compileTask.dependsOn copyNativeLibs}//noinspection alltasks.withType(com.android.build.gradle.tasks.PackageApplication) {    pkgTask ->        pkgTask.jniFolders = new HashSet<File>()        pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))}

在build.gradle中的sourceSets-》main中添加jniLibs.srcDirs=['libs']

    sourceSets {        main {            manifest.srcFile 'AndroidManifest.xml'            java.srcDirs = ['src']            resources.srcDirs = ['src']            aidl.srcDirs = ['src']            renderscript.srcDirs = ['src']            res.srcDirs = ['res']            assets.srcDirs = ['assets']            jniLibs.srcDirs = ['libs']        }


關於adt的版本跟gradle的對應關係,參考這篇文章

http://blog.csdn.net/qq634416025/article/details/40361931

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.