Android Studio3.0多渠道打包遇到的问题
2017-12-12 13:20
323 查看
最近升级到了Android Studio3.0,在给测试打包的时候突然出错,错误如下:
查了以下,发现在3.0上打包的话,如果你的app moudle有几种buildTypes的话,所依赖的moudle也必须有几种(不做具体实现也可以),什么意思呢?
比如,你的app目录下的build.gradle文件中,buildTypes如下:
同时,你的app依赖一个第三方moudle比如叫UMUpdate,则在UMUpdate目录下的build.gradle文件中,也必须声明上边儿这三种buildTypes,当然,可以不做具体处理:
更新:
以上办法在遇到依赖多个moudle的时候会非常麻烦,幸好又大佬说了一个matchingFallbacks的词,通过配置它可以处理app与moudle的依赖匹配问题。
摘抄如下:
通过这两种配置matchingFallbacks的方式,就可以通过只修改app下的build.gradle文件,来解决打包时buildTypes不匹配的问题了。
Error:Cannot choose between the following configurations of project :UMUpdate: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRuntimeElements All of them match the consumer attributes: - Configuration 'debugApiElements': - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-api' but wasn't required. - Configuration 'debugRuntimeElements': - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-runtime' but wasn't required. - Configuration 'releaseApiElements': - Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-api' but wasn't required. - Configuration 'releaseRuntimeElements': - Found com.android.build.api.attributes.BuildTypeAttr 'release' but wasn't required. - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required. - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required. - Found org.gradle.api.attributes.Usage 'java-runtime' but wasn't required.
查了以下,发现在3.0上打包的话,如果你的app moudle有几种buildTypes的话,所依赖的moudle也必须有几种(不做具体实现也可以),什么意思呢?
比如,你的app目录下的build.gradle文件中,buildTypes如下:
buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "false" zipAlignEnabled true shrinkResources true minifyEnabled true proguardFiles 'proguard-rules.pro' } debug { buildConfigField "boolean", "LOG_DEBUG", "true" zipAlignEnabled true shrinkResources false minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug2{ } }
同时,你的app依赖一个第三方moudle比如叫UMUpdate,则在UMUpdate目录下的build.gradle文件中,也必须声明上边儿这三种buildTypes,当然,可以不做具体处理:
buildTypes { release { } debug { } debug2{ } }
更新:
以上办法在遇到依赖多个moudle的时候会非常麻烦,幸好又大佬说了一个matchingFallbacks的词,通过配置它可以处理app与moudle的依赖匹配问题。
摘抄如下:
可以通过matchingFallbacks属性来设置回退策略,提供可能的匹配列表,代码如下: // In the app's build.gradle file. android { buildTypes { debug {} release {} staging { // Specifies a sorted list of fallback build types that the // plugin should try to use when a dependency does not include a // "staging" build type. You may specify as many fallbacks as you // like, and the plugin selects the first build type that's // available in the dependency. matchingFallbacks = ['debug', 'qa', 'release'] } } } 若希望可以针对app的每个build type都执行相同的回退策略(例如我们大量的library只有一个release的build type),则可以使用批量指令: buildTypes.all { type -> type.matchingFallbacks = ['release'] }
通过这两种配置matchingFallbacks的方式,就可以通过只修改app下的build.gradle文件,来解决打包时buildTypes不匹配的问题了。
相关文章推荐
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android Studio 多渠道打包遇到的问题总结
- Android studio 3.0上进行多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android studio 3.0上进行多渠道打包遇到的问题小结(超简洁版)
- Android Studio3.0多渠道打包遇到的问题
- Android studio 3.0上进行多渠道打包遇到的问题
- Ant 多渠道 多项目应用library 打包Android项目遇到问题总结
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- Android Studio3.0多渠道打包遇到的问题
- android ant多渠道 批量打包 打包过程及过程中遇到问题
- Android Studio3.0多渠道打包遇到的问题
- 使用ant对项目进行多渠道打包时遇到问题记录
- Android Studio3.0多渠道打包遇到的问题