標籤: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 版本