我正在建立一个免费的两个版本的Android应用程序,另一个用于付费。
由于两个版本的大多数UI都是相同的,因此我创建了一个Android库项目来保存应用的常见组件,包括公共Activity
,View
,{{ 1}},Layout
和Resources
。
库项目名为AndroidManifest.xml
。
然后我创建两个名为MapBase
和MapForFree
的模块(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。
由于MapBase
和MapForFree
模块具有相同的AndroidManifest.xml,因此我从MapForPaid
复制此文件。
但是,该文件声明了MapBase
模块中定义的一些活动。如何解决这个问题?
答案 0 :(得分:0)
我不确定你的第一个问题。对于您的第二个问题,MapForFree
和MapForPaid
应该都有自己的AndroidManifest.xml
。需要在清单中定义来自MapBase
的任何组件都应使用组件名称前的完整包名MapBase
进行定义。
例如,如果Activity
中定义的MapBase
名为MapBaseActivity
,并且它位于com.example.app
包中,则应列在MapForFree
的清单中{1}}和MapForPaid
为:
<activity android:name="com.example.app.MapBaseActivity">