手把手教你AndroidStudio多渠道打包
阿新 • • 發佈:2019-01-23
根據博主做出修改:在Android studio 3.0 版本一會我們會 報錯下面就好好說說我們是怎麼解決的
說到多渠道,這裡不得不提一下友盟統計,友盟統計是大家日常開發中常用的渠道統計工具,而我們的打包方法就是基於友盟統計實施的。按照友盟官方文件說明,渠道資訊通常需要在AndroidManifest.xml中配置如下值:
(一)在AndroidManifest.xml裡設定動態渠道變數 在application中
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
(二)在build.gradle設定productFlavors
亦或者是 用法都是一樣的android { productFlavors { kuan { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "kuan"] } xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"] } qh360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"] } baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } } }
android {
productFlavors {
kuan {}
xiaomi {}
qh360 {}
baidu {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
(三)執行打包操作
signingConfigs {
release{
storeFile file("../wooyun_keystore") //簽名檔案路徑
storePassword "123456"
keyAlias "123456"
keyPassword "123456" //簽名密碼
}
}
注意了!錯誤的解決 我們的程式報錯Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensi個問題是Android studio升級到3.0之後,執行的時候會提示gradle要升級到3.5版本才能編譯。於是我把我的gradle升級到了 gradle-4.1-milestone-1 版本,是2017年7月份最新版本了。外掛3.0.0包含一個新的依賴機制,它在使用庫時自動匹配變數。這意味著應用程式的除錯變體會自動地消耗一個庫的除錯變數,等等。它也可以在使用類黃的時候起作用——一個應用程式的redDebug變體將消耗一個庫的redDebug變體。為了完成這項工作,外掛現在要求所有的味道都屬於一個命名的味道維度,即使你只打算使用一個維度。否則,您將得到以下構建錯誤:解決辦法在我們的在build.gradle設定中 寫 flavordimensions "這裡就是我們指定的"
flavorDimensions "UMENG_CHANNEL_VALUE"
大致是說,Plugin 3.0.0之後有一種自動匹配消耗庫的機制,便於debug variant 自動消耗一個庫,然後就是必須要所有的flavor 都屬於同一個維度。為了避免flavor 不同產生誤差的問題,應該在所有的庫模組都使用同一個foo尺寸。= 。=還是懵逼。說一堆依然不是很理解。但是我們從中已經知道解決方案了:在主app的build.gradle裡面的 defaultConfig { targetSdkVersion:***
minSdkVersion :***versionCode:***
versionName :***//版本名後面新增一句話,意思就是flavor dimension 它的維度就是該版本號,這樣維度就是都是統一的了flavorDimensions "versionCode"
}