大佬教程收集整理的这篇文章主要介绍了Android Gradle:在一台设备上安装所有构建类型,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不断收到错误,例如:@L_489_1@或INSTALL_FAILED_DUPLICATE_PERMISSION
大多数博客文章要么过时(谈论packageName),要么是force you to use flavors,因为他们提出的解决方案@L_673_9@applicationIdSuffix,而构建类型不能声明applicationId,因此你需要使用一种风格
我建议使用的解决方案
>每种构建类型的权限
>每种构建类型的帐户类型
>每种构建类型的GCM权限
为此,我在Gradle文件中使用applicationIdSuffix,manifest placeholders,BuildConfigField和resValue.
剩下的唯一问题是当你想为app和每种语言设置一个不同的名字时,字符串不会被设置为可翻译(bug aosp tracker)
这会强制您将abortOnError设置为false,否则您将无法进行发布构建.
的build.gradle
project.ext { defaultApplicationId = "com.myapp.package" } android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId defaultApplicationId manifestPlaceholders = [ applicationIdWithSuffix: "${applicationID}" ] buildConfigField "String","ACCount_Type","\"${applicationID}\"" buildConfigField "String","AUTHORITY","\"${applicationID}.provider\"" resValue "String","acCount_Type","${applicationID}" resValue "String","authority","${applicationID}.provider" } buildTypes { debug { applicationIdSuffix ".debug" debuggable true manifestPlaceholders = [ applicationIdWithSuffix: defaultApplicationId + ".debug" ] buildConfigField "String","\"${defaultApplicationID}.debug\"" buildConfigField "String","\"${defaultApplicationID}.debug.provider\"" resValue "String","${defaultApplicationID}.debug" resValue "String","${defaultApplicationID}.debug.provider" } } lintOptions { abortOnError false } }
AndroidManifest.xml中
<manifest xmlns:android="http://scheR_770_11845@as.android.com/apk/res/android" package="com.mypackage" > <permission android:name="${applicationIdWithSuffix}.permission.C2D_messaGE" android:protectionLevel="signature" /> <uses-permission android:name="${applicationIdWithSuffix}.permission.C2D_messaGE" /> <application android:label="@String/app_name" > <provider android:name=".MyContentProvider" android:authorities="${applicationIdWithSuffix}.provider" android:exported="false" android:multiprocess="true" /> </application> </manifest>
同步适配器xml
<sync-adapter xmlns:android="http://scheR_770_11845@as.android.com/apk/res/android" android:contentAuthority="@String/authority" android:accountType="@String/acCount_Type"/>
帐户验证者
<account-authenticator xmlns:android="http://scheR_770_11845@as.android.com/apk/res/android" android:accountType="@String/acCount_Type" .../>
内容提供商
AUTHORITY = BuildConfig.AUTHORITY
帐户类型
BuildConfig.ACCount_Type
多语言应用名称
如果你想要每个应用程序不同的名称和语言:
<resources> <String name="app_name">MyApp debug EN</String> </resources>
<resources> <String name="app_name">MyApp debug FR</String> </resources>
<resources> <String name="app_name">MyApp EN</String> </resources>
<resources> <String name="app_name">MyApp FR</String> </resources>
以上是大佬教程为你收集整理的Android Gradle:在一台设备上安装所有构建类型全部内容,希望文章能够帮你解决Android Gradle:在一台设备上安装所有构建类型所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。