利用android studio實現多渠道打包

去友盟申請app的key 然后在menifest里面注冊如下

<!--集成友盟-->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="your key"/>
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="Umeng"/>

然后在gradle的android模塊里面寫入如下代碼

productFlavors{
        xiaomi{}
        huawei{}
        baidu{}
        wandoujia{}
        yingyongbao{}
    }
    productFlavors.all {
        flavors -> flavors.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

如果需要對每個不同渠道的app自定義命名,需要在release里面寫入如下代碼

   applicationVariants.all { variant->
                variant.outputs.all{ output->
                    def outputFile = output.outputFile
                    if (outputFile!=null && outputFile.name.endsWith(".apk")){
                        //  outputFile.name = "AndroidDemo_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        // studio 3.0 以后outputFile.name為只讀屬性,需要改為如下寫法
                        outputFileName = "AndroidDemo_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                    }
                }

            }

如果studio是3.0以上的,不要忘了寫上下面這句,否則會報錯flavorDimensions issure 導致編譯不通過。

android { 
       compileSdkVersion 24
       .....
       flavorDimensions "versionCode"
} 
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評論 25 708
  • 最近在項目中遇到需要實現 Apk 多渠道、定制化打包, Google 、百度查找了一些資料,成功實現了上述功能,在...
    看一季殘花落幕閱讀 2,531評論 1 8
  • 這一章主要針對項目中可以用到的一些實用功能來介紹Android Gradle,比如如何隱藏我們的證書文件,降低風險...
    acc8226閱讀 7,677評論 3 25
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • Daily Routin: 1.6:00-7:40:聽力+課外閱讀時間 要求:聽力聽完之后還要總結;...
    Tera_閱讀 309評論 0 0