>两个应用程序,在一个Android工作室项目中80%相似.
>每个应用程序应该有自己的清单包路径(它们应该基本上像两个独立的应用程序 – 使用它自己的谷歌API和推送键)
在我试图实现这个目标(占位符,多个清单)时,我遵循了多个教程但没有任何作用.
在本教程之后,我做了以下内容:
http://www.kevinrschultz.com/blog/2014/03/23/using-android-content-providers-with-multiple-package-names/
我的build.gradle:
androID {compileSdkVersion 19buildToolsversion '20'defaultConfig { minSdkVersion 10 targetSdkVersion 19 versionCode 1 versionname "1.0"}buildTypes { release { runProguard false proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.txt' }}productFlavors { app1 { packagename "com.test.app1" //applicationID "com.test.app1" } app2 { packagename "com.test.app2" //applicationID "com.test.app2" }}}
在这里我的清单文件.
的src / main /清单:
<?xml version="1.0" enCoding="utf-8"?>
<application></application>
SRC / APP1 /清单:
<?xml version="1.0" enCoding="utf-8"?><manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"> <uses-permission androID:name="androID.permission.INTERNET" /> <application androID:name="com.test.app1” androID:allowBackup="true" androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" androID:theme="@style/Apptheme" > <activity androID:name="com.test.app1.MainActivity" androID:label="@string/app_name" androID:launchMode="singleTask" androID:screenorIEntation="portrait" > </activity> </application></manifest>
SRC / APP 2 /清单:
<?xml version="1.0" enCoding="utf-8"?><manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"> <uses-permission androID:name="androID.permission.INTERNET" /> <application androID:name="com.test.app2” androID:allowBackup="true" androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" androID:theme="@style/Apptheme" > <activity androID:name="com.test.app2.MainActivity" androID:label="@string/app_name" androID:launchMode="singleTask" androID:screenorIEntation="portrait" > </activity> </application></manifest>
这给了我以下错误消息:
Manifest merger Failed : Main AndroIDManifest.xml at AndroIDManifest.xml manifest:package attribute is not declared
不幸的是,由于我的应用程序需要不同的包路径,因此无法为每个单独的清单标记设置包.如果我仍然这样做,合并将无法合并清单文件,因为不同的包值.除了packagename我还尝试设置“applicationID”,但这也不起作用.使用像这个package =“${applicationID}”的占位符不起作用,因为它不解析变量值.
任何想法如何解决这个问题?我正在使用带有gradle 0.12.2的AndroID Studio 0.8.2
@H_403_38@解决方法 你可以安全地添加<manifest xmlns:androID="..." package="com.test.app"></manifest>
在你的主要清单中.
但是你必须在build.gradle中使用applicationID而不是packagename.
build.gradle的applicationID将在您的不同构建期间覆盖此值.
更好的方法是使用applicationIDSuffix而不是applicationID来实现不同的产品风格.
该字段必须存在于您的主清单中.
@H_403_38@ @H_403_38@ 总结以上是内存溢出为你收集整理的android – 产品变体:多个活动全部内容,希望文章能够帮你解决android – 产品变体:多个活动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)