将Android项目作为module导入到主项目中

本文详细介绍了在Android项目中导入module的步骤,包括修改build.gradle配置、解决依赖冲突、处理ABI过滤等问题,以及应对各种编译和运行时错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

导入module流程:

1.主项目中import需要导入项目的app模块;

2.修改该module中build.gradle里的com.android.application为com.android.library;

3.删除该module的applicationId;

4.File->打开工程结构,导入module,若没有,则在setting.gradle中手动添加后再导入;

5.由于ugsv中build.gradle里面的配置引入的项目级的build.gradle,则将小视频的工程级的build.gralde里ext的内容直接复制到自己项目中的工程级的build.gralde里

6.此时报错:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not find :LiteAVSDK_Professional

解决

将ugsv这一module中的两个so文件拷贝到app这一module中的src/main/jniLibs文件夹下,并在项目级的build.gradle中的allprojects下repositories中添加:

flatDir {
    dirs 'src/main/jniLibs'
}

7.Try Again,此时报错:

Android dependency 'com.android.support:multidex' has different version for the compile (1.0.0) and runtime (1.0.2) classpath. You should manually set the same version via DependencyResolution

解决

方法数65k限制,在app的build.gradle中的defaultConfig中加入:

multiDexEnabled = true

8.Try Again,此时报错:

AAPT2 error: check logs for details

主要是 将项目级中build.gradle的classpath的gradle版本降为2.2.3;

并将app中build.gradle中的所有implitetion改为compile;

9.Try Again,此时报错:

Cause: buildToolsVersion is not specified.

在app的build.gradle中添加buidToolsVersion;

10.Try Again,此时报错:

The versions of the Android Gradle plugin and Gradle are not compatible.
Please do one of the following:<ul><li>Update your plugin to version 2.4. This will require changes to build.gradle due to API changes.

解决

修改项目级的build.gradle为3.0.0,将两个module中的

compile,buildToolds以及targetSdkVersion都保持一致;

11.此时报错

compile 'com.android.support:appcompat-v7:23.2.1'

解决

将两个module中appcompat,design,recyclerview的版本号保持一致,其取决于compileSdkVersion;

参开该文章

12.rebuild,此时报错,主要是其他module中不能用switch选择语句;

13.run,报错:

com.android.builder.merge.DuplicateRelativeFileException: More than one file was found with OS independent path 'lib/armeabi/libtraeimp-rtmp-armeabi.so'

解决

app这一module的build.gradle中,加入以下代码,即排除重复的文件:

packagingOptions {
    exclude 'lib/armeabi/libtraeimp-rtmp-armeabi.so'
    exclude 'lib/armeabi-v7a/libtraeimp-rtmp-armeabi-v7a.so'
}

14.run,由于手机已安装小视频app,AndroidManifest里面provider标签的authorities与导入module的相同,所以需修改;

15.再run,会崩溃,找不到module的application中的方法;

解决

由于module不再是app,所以将导入的module中的AndroidManifest里的application属性全部去掉;

16.再run,到导入的module里的内容时,崩溃:

java.lang.UnsatisfiedLinkError: No implementation found

解决

app的build.gradle里的buildTypes加入abiFilters,参照该文章

 

此时便已成功导入module并运行了。


参考:导入Android工程作为Library Module流程及问题集

 

 

 

### 解决 Android Studio 中导入项目时报 'Module not specified' 错误 当在 Android Studio 中尝试运行项目时遇到 `Error: Module not specified` 的情况,通常是因为 IDE 未能正确识别项目的模块结构。按照以下建议可以有效解决问题: 对于此类问题的一个解决方案是在选中项目本身之后,通过右键菜单选择 Flutter -> Open Android module in Android Studio 或者 File -> Open 来显式打开该项目Android 部分[^1]。 一旦进入了 Android 底层开发环境,如果观察到 Run 按钮(绿色三角形)呈现灰色状态且左侧无可用模块选项,则应执行如下操作来修正配置: - 打开 Edit Configurations 对话框; - 在 Run/Debug Configurations 页面下创建一个新的 Android App 配置项;此时可能会收到提示指出存在 `Error: Module not specified`; - 关闭当前对话框返回主界面后,重新同步 Gradle 文件以使更改生效。 此外,确保所使用的 SDK 和工具链版本保持最新也很重要。例如,调整 `build.gradle` 文件中的编译参数至较新的 API 版本可能有助于消除潜在冲突[^2]。 最后,若上述措施仍无法彻底解决问题,考虑清理缓存并重启 Android Studio 可能会有帮助。这一步骤能够清除临时文件和索引数据,从而让 IDE 更好地解析项目依赖关系[^5]。 ```groovy // 修改后的 build.gradle 示例片段 android { compileSdkVersion 32 buildToolsVersion "32.0.0" defaultConfig { applicationId "com.example.yourapplication" minSdkVersion 21 targetSdkVersion 32 ... } } ``` #### 注意事项 在整个过程中,请务必保存所有工作进度以防意外丢失,并备份重要的源码变更记录以便回滚测试不同的修复策略。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值