我的应用程序只由一个application
模块组成。我最近尝试将其拆分为2个模块(一个feature
基础和一个application
一个),以便稍后添加instant-app
模块。
我新创建的feature
模块AndroidManifest
和gradle.build
包含以前application
模块中的所有内容:
feature
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="base.package"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- all uses-permissions and permissions -->
<application>
<!-- activities, intent-filters... -->
<provider android:authorities="com.facebook.app.FacebookContentProvider663###########"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
<!-- etc -->
</application>
</manifest>
application
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="app.package"
xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>
feature
build.gradle:
apply plugin: 'com.android.feature'
android {
buildTypes {
debug {
// debug values
}
release {
// release values
}
}
lintOptions {
checkReleaseBuilds false
}
compileSdkVersion rootProject.compileSdk
defaultConfig {
minSdkVersion rootProject.minSdk
targetSdkVersion rootProject.compileSdk
versionCode rootProject.versionCode
versionName rootProject.versionName
}
baseFeature true
}
dependencies {
api "com.android.support:appcompat-v7:$rootProject.supportLib"
application project(':apk')
compile "com.google.firebase:firebase-core:$rootProject.gmsLib"
compile 'com.facebook.android:facebook-android-sdk:4.27.0'
// other dependencies
}
application
build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.compileSdk
defaultConfig {
applicationId "app.package"
minSdkVersion rootProject.minSdk
targetSdkVersion rootProject.compileSdk
versionCode rootProject.versionCode
versionName rootProject.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation project(":feature")
}
apply plugin: 'com.google.gms.google-services'
然而,虽然一切都很好,但我的APK运行配置存在问题:
当我在启动选项中选择默认活动时,我收到默认活动未找到警告,当我选择一个特定的活动时,我得到一个活动&#39; XXXX&#39;未在AndroidManifest.xml 中声明。
经过一番研究后,我意识到这是因为apk
Manifest的一个错误,我能够通过查看&#34; Merged Manifest&#34;选项。这是输出:
我无法找到相关信息来帮助我解决这个问题...感谢您的帮助!
答案 0 :(得分:2)
我能够通过在功能tools:node="replace"
的{{1}}节点中添加<application>
来解决此问题。另外,不要忘记在Manifest顶级添加AndroidManifest
。