Android Studio 3迁移后嵌入Unity应用遇Module not specified错误
解决Android Studio 3.x嵌入Unity应用时的“Module not specified”错误
我刚踩过几乎一模一样的坑!Android Studio 3.x用了全新的Gradle构建规则,和旧版本的兼容问题确实容易出这种莫名其妙的错误,给你几个亲测有效的排查方向:
1. 先把Unity导出模块的类型改对
这是最容易踩的坑!你要嵌入的Unity模块必须是library类型,而不是application类型——旧版AS可能对这个要求没那么严,但3.x之后卡得很死。
看你贴的代码开头是apply plugin: com.android.application,直接改成apply plugin: 'com.android.library'就行,而且library模块不需要applicationId,把defaultConfig里的这行删掉也可以。
修正后的Unity模块build.gradle示例:
apply plugin: 'com.android.library' android { compileSdkVersion 26 buildToolsVersion '26.0.2' defaultConfig { minSdkVersion 24 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) }
2. 确保主项目正确引入Unity模块
- 打开项目根目录的
settings.gradle,确认已经把Unity模块加进去了,比如:include ':app', ':UnityLibrary' // UnityLibrary是你导出的模块名,按实际修改 - 然后在主项目的
app/build.gradle里添加依赖,注意AS 3.x开始用implementation代替旧的compile:dependencies { implementation project(':UnityLibrary') // 其他依赖... }
3. 同步Gradle+检查项目结构
- 点击工具栏的
Sync Project with Gradle Files按钮同步,之后去File > Project Structure里核对:- 主模块(app)的Dependencies标签下,是否已经正确显示Unity模块的依赖;
- 所有模块的
Compile Sdk Version、Build Tools Version必须完全一致,3.x对版本统一要求特别严格。
4. 清缓存重建项目
有时候旧缓存会搞鬼,按这个顺序操作:
Build > Clean ProjectBuild > Rebuild Project- 要是还不行,直接删项目根目录和用户目录下的
.gradle文件夹,再重新同步。
5. 检查Unity导出设置
最后确认下Unity导出时的配置:
- 一定要选「Export Project」,不能直接生成APK,不然拿不到可嵌入的模块;
- 导出路径别带中文或特殊字符,虽然3.x兼容性好了点,但还是尽量用纯英文路径保险。
我当时就是因为把Unity模块设成了application,卡了半天这个错误,改成library之后立马就好了,你先试试这个关键点!
内容的提问来源于stack exchange,提问作者Nathan Damtew
相关产品推荐
相关产品推荐

