❶ android studio 中如何構建Maven項目
作者:知乎用戶
鏈接:https://www.hu.com/question/24367230/answer/44804731
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
誠如你所說gradle構建方式,編譯會較慢,特別是第一次使用的時候啟動也會較慢。這有大致幾個原因:
Gradle相關插件需要下載,Maven依賴的jar包需要下載
Gradle命令行編譯慢,是由於配置不完善,Android Studio IDE環境亦然
機器性能差
參考方法,具體細節請參閱gradle官方文檔,android官方文檔等
下載並配置gradle離線包,配置Maven本地倉庫
命令行編譯的話, 配置 daemon=true(開啟gradle守護進程)等,Android Studio 勾選 offlinework選項
在下面的目錄下面創建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
並在文件中增加:org.gradle.daemon=true
其他更詳細的不在此處贅述
--------------------------
update:給到一些相關參考
Chapter 19. The Gradle Daemon
加速Android Studio/Gradle構建 順手摘了一篇,類似博客不少
使用Gradle構建Android程序
Gradle插件用戶指南(譯)
其他具體細節請通過官方文檔,google搜索,參考他人博客解決,此處僅提供參考。
❷ android gradle打包生成兩個包,怎麼去掉debug版本
Gralde 打包參數詳解
上面說了一大堆東西,其實並不吸引人去使用gradle,如果只是構建項目的話,adt不是更合適嗎?如果,你看完以下內容還是這么覺得的話,你就沒必要折騰gradle了。。。。。。
打簽名包
看附錄 默認輸出 release apk 是沒有簽名的,那麼我們需要簽名的很簡單,只需要在android{}裡面補充加上加上即可。完整build.gradle 請點擊我的gist
build.gradle
signingConfigs {
myConfig{
storeFile file("gradle.keystore")
storePassword "gradle"
keyAlias "gradle"
keyPassword "gradle"
}
}
buildTypes{
release {
signingConfig signingConfigs.myConfig
}
}
然後,運行gradle clean gradle build ,這次在build/apk 你看到了多了一個[項目名]-release-unaligned, 從字面上面我就可以知道,這個只是沒有進行zipAlign 優化的版本而已。而[項目名]-release 就是我們簽名,並且zipAlign 的apk包了. ###打混淆包### 只需要在原來的基礎上加上,完整的proguad.gradle 代碼 build.gradle
gradle clean
gradle build
打多渠道包(Proct Flavor)
現在來解釋一下上一節的問題,apk目錄下的兩個apk 的含義
為什麼產生了兩個apk?
默認的android gralde 插件定義了兩種apk 的類型debug, release,這兩種類型的詳細對比看附錄。
這個是android gralde 插件 buildTypes{} 方法產生的,默認配置好了兩個默認模板,當然你也可以修改,前面我們就是在修改默認的release 的配置,讓輸出release類型的的apk,具有簽名和混淆。
對於多渠道包,android 插件提供了一個名為Proct Flavor{} 的配置,用於進行多渠道打包。
例如,我的android應用有海外版,和國內版本,而且這兩個版本的包名是不一樣的!!(我就舉兩個市場的例子安裝這個思路,你要打包100個不同的市場只是幾行代碼的事情。)。
你只需要在android{} 補充上
build.gradle
proctFlavors {
playstore {
packageName='com.youxiachai.androidgradle.playstore'
}
hiapk {
packageName='com.youxiachai.androidgradle.amazonappstore'
}
}
僅此而已?然後gradle clean,gradle build,在build/apk 下面你會看到一堆的包,命名格式[項目名]-[渠道名]-release
Proct Flavor{} 不只是能改包名那麼簡單,還能夠對編譯的源碼目錄進行切換。
什麼意思? 不知道各位有沒有用過友盟做用戶統計,如果,你用的是分發渠道分析,你需要修改AndroidManifest.xml 添加上
如果,你很多渠道,,然後你就會很痛苦,現在用gradle 就非常舒服,你只需要在android.sourceSets指定我們的渠道名就行,android gradle 插件,會自動打包!!!例如
build.gradle
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
hiapk {
manifest.srcFile 'hiapk/AndroidManifest.xml'
}
playstore {
manifest.srcFile 'hiapk/AndroidManifest.xml'
}
instrumentTest.setRoot('tests')
}
然後運行gradle clean,gradle build,省下的時間去喝杯咖啡,睡個覺什麼的都好。。。 ###外部依賴### android gradle 對於外部jar 包的應用支持maven/ivy 管理的包,也支持指定具體文件,前面已經在上文說過。上面演示的完整 build.gradle gist 裡面也有寫。你需要加上如下代碼即可: build.gradle
❸ android studio 打包出現這樣的問題怎麼解決
你看你的資源文件是否存在有大寫命名的文件。
android資源文件不允許大寫。android自動生成的資源文件如果出錯了不是配置問題就是命名問題,android 在命名的時候 只能用 a-z的小寫 和0-9的數字 ,而且 第一個必須是 字母
你的是否是23版本的?如果是:
在stackoverflow上的解釋是:23.0之前有基於apac.http package的引用,而升級後這個引用沒了,導致新建項目報錯
Found a workaround that allows me to keep working on 22
You need to delete the build tools 23 from the sdk manager and then in the sdk folder (yes the actual folder) open up sdk/extras/android/m2repository/com/android/support/appcompat-v7
blow away the entire 23.0.0 folder
then in the same appcompat folder open maven-metadata.xml and delete the one line <version>23.0.0</version>
clean and rebuild
code.google給出了解決辦法:
參照以上方法,我們需要這么干:
第一步:把你的build.gradle設置為(之前報錯時候這里是v7.23.0.0) v7:22.2.1
第二步:進入Android\sdk\extras\android\m2repository\com\android\support\appcompat-v7 ,刪除23.0.0文件夾,刪除maven-metadata.xml中的<version>23.0.0</version>
第三步:進入項目clean,接著rebuild 注意!!!!!!只clean依然報錯
已測試,完成以上三步再建立其他項目正常
❹ maven管理android項目jar包,用maven 打包時可以把maven管理的jar包打進去,但是用eclipse的run as ...
像這樣的情況你需要在pom文件里添加android-maven-plugin,並且在eclipse里安裝插件Maven Integration for Android Developement Tools
❺ 如何在Android Studio中使用Maven
要在gradle中使用的:
repositories {
激備mavenCentral()
maven {
url "${HOME}/.m2/repository/"
}
}
通過對資料庫的索引,我們還為您准備了:
Android Studio怎麼使用本地的maven庫
答:buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' } } allprojects { repositories { mavenLocal() mavenCentral() } }
===========================================
Android Studio怎麼使用本地的maven庫
答:要在gradle中使用的: repositories { mavenCentral() maven { url "返亮${HOME}/.m2/repository/" } }
===========================================
Android studio使用方法
問:Android studio;我下載了一個俄羅斯方塊的源代碼,希望通過Android stu...
答:先來到Android Studio的bin目錄下,修改studio.bat 第72行GOTO end 在它前面加上PAUSE 用於查看錯誤消息,進入cmd 然後指向Android Studio目錄下 運行studio.bat 可以查看錯誤消息,去修改android-studio\bin目錄下的studio.exe.vmoptions 去除明世毀第...
===========================================