android – 产品变体:多个活动

android – 产品变体:多个活动,第1张

概述我在gradle / android studio中使用Product Variants来实现以下项目设置: >两个应用程序,在一个Android工作室项目中80%相似. >每个应用程序应该有自己的清单包路径(它们应该基本上像两个独立的应用程序 – 使用它自己的谷歌API和推送键) 在我试图实现这个目标(占位符,多个清单)时,我遵循了多个教程但没有任何作用. 在本教程之后,我做了以下内容: htt 我在gradle / android studio中使用Product Variants来实现以下项目设置:

>两个应用程序,在一个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 – 产品变体:多个活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1135335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存