Android官方技術文檔翻譯——遷移 Gradle 項目到1.0.0 版本

來源:互聯網
上載者:User

標籤:android技術文檔   android文檔翻譯   gradle項目升級   

本文譯自Android官方技術文檔《Migrating Gradle Projects to version 1.0.0》,原文地址:http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0。

本篇文檔介紹的是低版本的Gradle項目怎麼升級到1.0.0版本。

翻譯不易,轉載請註明CSDN部落格上的出處:

http://blog.csdn.net/maosidiaoxian/article/details/42772727

翻譯工作耗時費神,如果你覺得本文翻譯得還OK,請點擊文末的“頂”;如有錯訛,敬請指正。謝謝。


遷移 Gradle 項目到1.0.0 版本Android 的 Gradle 外掛程式有了迅猛的發展,作為進化的特徵,API 和構建檔案的描述語言也經過了一些不相容的更改。如果你正在試圖載入用舊版本的 Gradle 外掛程式構建的項目,它可能無法通過 1.0.0 版本正確構建。
本文檔描述了大部分常見的變動,以協助您遷移到 1.0.0。從1.0.0 及以後的版本起,我們將儘力不進行不相容的更改。如果我們做到了,我們將打算編寫 IDE 支援,以協助自動遷移項目。更新外掛程式和 Gradle 版本號碼構建系統知道要使用哪一個版本的 Gradle 外掛程式,以及哪一個版本的 Gradle 。因為它們都在您的專案檔中顯式列出。當您使用 Android Studio 1.0 並開啟一箇舊的項目時,它將主動提出自動尋找和更新這些版本號碼。您也可以對這些版本號碼進行手動編輯。
Android Gradle 外掛程式版本通常是在項目中頂級的 build.gradle檔案內列出,並可以更新為如下內容:
     dependencies { -        classpath ‘com.android.tools.build:gradle:0.8.+‘ +        classpath ‘com.android.tools.build:gradle:1.0.0      }
你的項目所用的 Gradle 版本還應該更新為2.2.1或更新的版本。你可以通過編輯 gradle/wrapper/gradle-wrapper.properties檔案來完成:  zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
再說,當你開啟一箇舊項目時Android Studio應該有提供自動執行此編輯:從 0.9. x 遷移到 1.0.0runProguard對使用者產生影響的最常見的問題是 runProguard屬性名稱改為了 minifyEnabled。如果您遇到以下這種構建錯誤    Gradle DSL method not found: ‘runProguard()‘那麼這就是你構建錯誤的原因。
會突然出現很多這樣的問題,是因為那個屬性在 0.14.0 版本之前會被插入到由 Android Studio 建立的所有項目中。
如果要升級您的項目,請編輯您的 build.gradle 檔案,如下所示:          }          release { -            runProguard true +            minifyEnabled true              proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.txt‘

在構建類型(build types)和product flavors中,還有其他一些屬性也被重新命名了。

類庫項目中的 ApplicationId

你不能使用 applicationId 來自訂一個項目的包名。這個包名稱必須在庫項目裡是固定的(並且在清單中以packageName指定)。在早些時候,Gradle 外掛程式並不強制這個約束條件。

在 BuildTypes 中重新命名的屬性 runProguard => minifyEnabled zipAlign => zipAlignEnabled jniDebugBuild => jniDebuggable renderscriptDebug => renderscriptDebuggable在 ProductFlavors 中重新命名的屬性 flavorGroups => flavorDimensions packageName => applicationId testPackageName => testApplicationId renderscriptSupportMode => renderscriptSupportModeEnabled ProductFlavor.renderscriptNdkMode => renderscriptNdkModeEnabled其他名稱更改 InstrumentTest was renamed to  androidTest.從 0.8.x 遷移到 0.9.x
Gradle 的 Android 外掛程式(Gradle plugin for Android)的 0.9 版本統做了一些不相容的更改,這些修改需要您的項目也進行更新。這一頁文檔介紹了如何更新您的項目。請注意這不是這個外掛程式的 0.9 版本中的所作更改的完整列表;它只是涵蓋需要了你的源檔案需要進行更新的那些更改。有關這些修改的完整的列表,請參見. 使用者指南
Instrumentation Tests如果您在您的項目中已經有了instrumentation 測試 (或其他類型的測試),請注意我們把名稱和檔案夾從 instrumentation 測試改為了 android 測試,以反映出一個事實。這個事實是,這種功能不只是instrumentation測試,也包含著普通的 JUnit 測試(在一個裝置上運行)和最終的 UI automator測試。
如果要更新您的項目
  • 將您的 instrumentTest 檔案夾重新命名為 androidTest,例如git mv app/src/instrumentTest app/src/androidTest。
    或者,你也可以通過重新設定你的 sourcesets 告訴 gradle 繼續使用舊的檔案夾。
  • 把所有的測試依賴從 instrumentTestCompile 更新為 androidTestCompile :
    dependencies {
    -    instrumentTestCompile ‘com.jayway.android.robotium:robotium-solo:4.3.1‘
    +    androidTestCompile ‘com.jayway.android.robotium:robotium-solo:4.3.1‘
庫項目用於庫項目的 DSL 現在應用程式項目是一樣的了。這意味著您可以建立更多的構建類型,和建立flavors。
  • 你可以在buildTypes { ... }容器裡建立或配置更多的構建類型。
  • 您可以通過productFlavors { ... }容器建立 product flavors。
  • 你可以通過signingConfigs { ... }容器建立 signingConfigs。
例如,如果在你的庫項目中有如下的配置:
android {    debug {    }    release {    }
    debugSigningConfig {    }
}

你將要把它替換為:
android {    buildTypes {        debug {        }        release {        }    }
    signingConfigs {
        debug {        }
    }
}

Android官方技術文檔翻譯——遷移 Gradle 項目到1.0.0 版本

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.