0

我正在构建一个有两个版本的 android 应用程序,一个是免费的,另一个是付费的。

由于两个版本的大部分 UI 和功能是相同的,所以我创建了一个 Android 库项目来保存应用程序的常用组件,包括common ActivityView、和.LayoutResourcesAndroidManifest.xml

库项目名为MapBase.

然后我创建了两个名为MapForFree和的模块(android 应用程序) MapForPaid

结构:

+MapProject

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

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

MapBase/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')
}

MapForFee/build.gradle:

...
apply plugin: 'android'
...

现在我想用MapForFreeandMapForPaid来引用MapBase模块,但是我遇到了两个问题:

1 引用方式。

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

2 AndroidManifest.xml。

由于MapForFreeandMapForPaid模块具有相同的 AndroidManifest.xml,所以我从MapBase.

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

4

1 回答 1

0

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

例如,如果您在被调用中Activity定义了一个,并且它在 package 中,则它应该在清单中列出和:MapBaseMapBaseActivitycom.example.appMapForFreeMapForPaid

<activity android:name="com.example.app.MapBaseActivity">
于 2013-11-08T03:09:37.167 回答