在android studio中重新使用android项目中的androidmanifest.xml

时间:2013-11-08 01:59:32

标签: android android-studio

我正在建立一个免费的两个版本的Android应用程序,另一个用于付费。

由于两个版本的大多数UI都是相同的,因此我创建了一个Android库项目来保存应用的常见组件,包括公共ActivityView,{{ 1}},LayoutResources

库项目名为AndroidManifest.xml

然后我创建两个名为MapBaseMapForFree的模块(android应用程序)。

结构:

MapForPaid

MapBase / build.gradle:

+MapProject

  +MapBase
    build.gradle
  +MapForFree
    build.gradle
  +MapForPaid
    build.gradle

  build.gradle(with empty content)
  settings.gradle(content==> include ':MapBase', ':MapForFree', ':MapForPaid')

MapForFee /的build.gradle:

apply plugin: 'android-library'
.....
dependencies {
    compile 'com.android.support:appcompat-v7:18.0.0'
    compile 'com.android.support:support-v4:18.0.0'
    compile fileTree(dir: 'libs', include: '*.jar')
}

现在我希望... apply plugin: 'android' ... MapForFree引用MapForPaid模块,但我遇到两个问题:

1推荐方式。

我应该在build.gradle文件中设置依赖项还是使用android stuido本身?

2 AndroidManifest.xml。

由于MapBaseMapForFree模块具有相同的AndroidManifest.xml,因此我从MapForPaid复制此文件。

但是,该文件声明了MapBase模块中定义的一些活动。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我不确定你的第一个问题。对于您的第二个问题,MapForFreeMapForPaid应该都有自己的AndroidManifest.xml。需要在清单中定义来自MapBase的任何组件都应使用组件名称前的完整包名MapBase进行定义。

例如,如果Activity中定义的MapBase名为MapBaseActivity,并且它位于com.example.app包中,则应列在MapForFree的清单中{1}}和MapForPaid为:

<activity android:name="com.example.app.MapBaseActivity">