![](/img/trans.png)
[英]Android Studio AndroidManifest.xml vs build.gradle
[英]Android Studio: Migrate complex build.xml to build.gradle
我已成功將我的項目從eclipse遷移到android studio,並生成了一個默認的build.gradle文件。 項目構建正確,我可以部署到調試等。
真正的問題是構建發布APK文件(從命令行)我曾經有一個自定義的ant-build(通過命令行調用,而不是eclipse)。
我的自定義build.xml通過以下方式從SDK文件夾導入標准sdk build.xml文件:
<import file="${sdk.dir}/tools/ant/build.xml" />
所以我在build.xml中所做的就是覆蓋目標或通過“depends”掛鈎它們。
覆蓋的示例:
<target name="-set-release-mode" depends="-set-mode-check">
<!--Here I rename my output apk files to something like: myapp-versionFromAndroidManifest.apk -->
</target
以及添加依賴項的示例:
<target name="-pre-build" depends="clean">
<!-- my custom code where I copy resource files, process command line arguments
use xpath to extract things like the version from the AndroidManifest.xml and
write them into custom xml files etc... -->
</target
總的來說整個事件使用螞蟻非常簡單。 但是現在談到遷移到gradle我完全失去了,如何完成我之前在ant中所做的那樣,具體來說:
我搜索了一堆教程,還有遷移教程(很遺憾沒有解決我的問題):
http://keepsafe-engineering.tumblr.com/post/87818767721/migrating-android-app-from-ant-to-gradle
http://ryanharter.com/blog/2013/07/17/migrating-android-projects-to-gradle/
我還從gradle文檔中讀到了本章,這些文檔根本沒有幫助,因為它沒有回答問題1或2或3:
http://www.gradle.org/docs/current/userguide/ant.html
以下給出了一些有趣的指示:
http://toastdroid.com/2014/03/28/customizing-your-build-with-gradle/
我還嘗試簡單地將sdk文件夾中的默認build.xml復制到我自己的build.xml中,然后簡單地在gradle中導入該ant構建文件並執行構建踢的ant任務:
<target name="release"
depends="-set-release-mode, -release-obfuscation-check, -package, -post-package, -release-prompt-for-password, -release-nosign, -release-sign, -post-build"
description="Builds the application in release mode.">
</target>
但是我開始遇到問題,這表明這不再是一個選項,因為默認的build.xml開始拋出錯誤,這似乎與SDK版本有關。 由於新的android工作室項目結構,我不得不使用原始的sdk build.xml亂用很多東西,所以文件不是他們期望的地方等等......
gradlew tasks
來列出任務列表。 init.dependsOn anotherTask
等命令。 只是為了記錄:我拋棄了使用我之前的ant-build並完全遷移到gradle的想法。 我需要做的大部分工作都可以通過目錄結構來實現。 你可以在我的另一個問題中找到我如何做到這一點的細節:
Android Studio:Gradle Product Flavors:定義自定義屬性
現在第二部分是調用我的java代碼做了一些我真的不想遷移到groovy / gradle的東西。 因此,我想出了如何從gradle腳本執行我的java類(盡管我實際上必須從中創建一個jar文件):
Android Studio Gradle:執行靜態Java方法(從ANT遷移到Gradle)
如果有人有疑問,我會很樂意盡我所能並回答他們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.