最新消息:欢迎访问Android开发中文站!商务联系QQ:1304524325

Android studio 3.0上进行多渠道打包遇到的问题

热点资讯 loading 39834浏览 0评论
Error:All flavors must now belong to a named flavor dimension. The flavor ‘xiaomi’ is not assigned to a flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
Android studio 3.0上进行多渠道打包时编译时出现这个错误
多渠道打包参考:http://blog.csdn.net/mynameishuangshuai/article/details/51783303
解决问题参考:https://stackoverflow.com/questions/44105127/android-studio-3-0-flavor-dimension-issue
多渠道打包的细节我就不说了,参考网络上的,或者我上面的这个链接就好,下面给出一下我修改的代码(如果有其他的改法也希望能多多交流)
flavorDimensions "default"
productFlavors {
    kuan {
        dimension "default"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "kuan"]
    }
    xiaomi {
        dimension "default"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
    }
    qh360 {
        dimension "default"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]
    }
    baidu {
        dimension "default"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
   }
   wandoujia {
        dimension "default"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
   }
}

或者:

flavorDimensions "default"
productFlavors {
    kuan {dimension "default"}
    xiaomi {dimension "default"}
    qh360 {dimension "default"}
    baidu {dimension "default"}
    wandoujia {dimension "default"}
}

productFlavors.all {
    flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
然后解决问题之后我又去官网查阅了一下,地址如下:
https://developer.android.com/studio/build/build-variants.html#flavor-dimensions
根据官网说法:
You must assign each product flavor you configure to one of the flavor dimensions.
你必须指定一种 flavor dimensions
</pre>
&nbsp;

</div>
</div>
void flavorDimensions(String... dimensions)

</div>
<div>
<pre>
flavorDimensions 后面可以添加多个不同类型的参数例如:
flavorDimensions "api", "mode"

接下来的使用对应起来就好了:

productFlavors {
demo {
    // Assigns this product flavor to the "mode" flavor dimension.
    dimension "mode"
    ...
}

full {
    dimension "mode"
    ...
}

// Configurations in the "api" product flavors override those in "mode"
// flavors and the defaultConfig {} block. Gradle determines the priority
// between flavor dimensions based on the order in which they appear next
// to the flavorDimensions property above--the first dimension has a higher
// priority than the second, and so on.
minApi24 {
    dimension "api"
    minSdkVersion '24'
    // To ensure the target device receives the version of the app with
    // the highest compatible API level, assign version codes in increasing
    // value with API level. To learn more about assigning version codes to
    // support app updates and uploading to Google Play, read Multiple APK Support
    versionCode 30000 + android.defaultConfig.versionCode
    versionNameSuffix "-minApi24"
    ...
}

minApi23 {
    dimension "api"
    minSdkVersion '23'
    versionCode 20000  + android.defaultConfig.versionCode
    versionNameSuffix "-minApi23"
    ...
}

minApi21 {
    dimension "api"
    minSdkVersion '21'
    versionCode 10000  + android.defaultConfig.versionCode
    versionNameSuffix "-minApi21"
    ...
}
}

好了,这就是官方给出的gradle多渠道打包的方式

转载请注明:Android开发中文站 » Android studio 3.0上进行多渠道打包遇到的问题

您必须 登录 才能发表评论!