Android番外篇 AndroidStudio独立运行Module

一、解决方案

进入Module的build.gradle

在这里插入图片描述
添加

apply plugin: 'com.android.application'

在这里插入图片描述

移除

apply plugin: 'com.android.application'

在这里插入图片描述
设置包名,即applicationId

defaultConfig {
    applicationId "com.xxx.xxx.net"
    ...
}

就能看见可以运行了
在这里插入图片描述

直接运行报错

在这里插入图片描述

二、解决方法

第一步:进入清单文件夹
在这里插入图片描述
第二步:配置application标签,包括icon、theme等

  <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@drawable/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">
    
      ...
    
    </application>

第三步:配置程序入口,添加intent-filter

        <activity android:name=".XXXXActivity">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
  
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>

三、番外

使用开关来配置Module是否独立运行

首先是设置是否组件化的开关,这个开关一般我们发在单独的gradle配置文件或gradle.properties文件中

(1)在confi.gradle中是这样的。当然你得在project的build.gradle中添加对config的引用。

project的build.gradle添加

apply from: "config.gradle"

然后在config.gradle中添加

ext {
    /** Net模块是否作为App存在*/
    isNetApp = false
}

(2)在gradle.properties中设置

#控制运行哪个模块(1:运行app模块 2:运行net模块)
runModule=2

(3)然后就是引用刚刚设置的变量

if (rootProject.ext.isNetApp) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}

或者

if (Integer.valueOf(runModule) == 1) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}

(4)开关设置好了,在要做切换的地方根据开关,来设置。主要在module的build.gradle中。

if (rootProject.ext.isNetApp) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}
...
android {
    ...
    defaultConfig {

        if (rootProject.ext.isNetApp) {
            //组件模式下设置applicationId
            applicationId "com.xxx.xxx.net"
        }
        ...      
    }
    
    // 配置不同模式下的AndroidManifest文件地址
    sourceSets {
        main {
            if (rootProject.ext.isNetApp) {
                manifest.srcFile 'src/main/AndroidManifest.xml'
            } else {
                // 这里再在对应的文件夹下新建AndroidMenifest文件,并配置好activity等参数即可
                manifest.srcFile 'src/main/module/AndroidManifest.xml'
            }
            jniLibs.srcDirs = ['libs']
        }
    }
}

AndroidMenifest的设置如下图

在这里插入图片描述
这样我们就可以在config.gradle中切换模块是否单独运行。

效果图:
在这里插入图片描述
资源包:https://download.csdn.net/download/weixin_44720673/19805720?spm=1001.2014.3001.5501

或者后台留言,我发给你也行


版权声明:本文为weixin_44720673原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。