如何在IntelliJ中调试或启动Maven构建的多模块Android应用
解决方案
核心问题根因
IDE执行Maven构建后自动安装失败的核心原因是IDE默认读取的APK路径与Maven安卓模块的构建输出路径不匹配,IDE按照Gradle的默认输出路径找APK自然找不到有效文件。
修复Maven构建后IDE自动安装/调试的问题
- 首先确认Maven安卓模块的APK输出路径,默认路径为
${project.build.directory}/${project.artifactId}-${project.version}.apk,提前验证该路径下的APK可正常手动安装 - 打开Android Studio的对应启动配置页,找到「安装选项」板块,取消勾选「默认APK」,手动选择「自定义APK路径」,指向你确认的Maven构建输出APK文件
- 若需要保留调试能力,在启动配置的「调试器」板块,确认调试符号搜索路径包含Maven构建输出的
/target目录下的.so文件,开启混淆的话还要追加mapping文件路径 - 优化Maven执行命令,无需执行完整的
clean install,替换为clean package android:deploy即可:android-maven-plugin原生支持deploy目标直接将构建完成的APK推送到已连接的设备/模拟器,适配性高于IDE默认安装逻辑 - 若使用3.9.0及以上版本的android-maven-plugin,需要在插件配置中添加
<deploy><update>true</update></deploy>参数,允许覆盖设备上已安装的同包名应用,避免重复安装报错
可选:修复Gradle构建Multidex报错问题
如果后续想要切换到更适配Android生态的Gradle构建体系,可以按以下步骤解决原Multidex报错:
- 不要仅依赖IDE的Multidex勾选配置,需要在模块级build.gradle中显式添加配置:
android { defaultConfig { // 开启Multidex支持 multiDexEnabled true } // 若有特殊类需要放在主dex中,添加以下配置 buildTypes { release { multiDexKeepProguard file('multidex-config.pro') } } } dependencies { // 引入Multidex官方依赖 implementation 'androidx.multidex:multidex:2.0.1' }
- 若使用自定义Application类,要么让自定义类继承
MultiDexApplication,要么在attachBaseContext方法中显式调用MultiDex.install(this) - 清理IDE缓存后重新执行Gradle同步即可
内容的提问来源于stack exchange,提问作者MattiahIT
相关产品推荐
相关产品推荐

