如何在Android Studio中用普通JDK编译子项目并添加到Android应用?
实现方案
是可以实现的,你可以在Android项目内新增纯Java子模块,指定使用普通JDK编译产出JAR,再让主Android模块直接依赖该子模块即可,全程不需要额外的外部编译操作,修改jTDS源码后可以直接编译运行测试。
操作步骤
1. 创建纯Java子模块
在Android Studio中执行以下操作:
- 右键项目根目录 → 点击「New」→ 选择「Module」
- 模块类型选择「Java or Kotlin Library」,自定义模块名例如
jtds-custom - 将你修改后的jTDS源码完整拷贝到该子模块的
src/main/java目录下,保留原有的包层级结构 - 如果jTDS包含资源配置文件,同步拷贝到子模块的
src/main/resources目录下
2. 配置子模块编译规则
修改jtds-custom子模块下的build.gradle(Groovy格式示例,KTS格式语法对应调整即可):
plugins { id 'java-library' } java { // 指定和jTDS兼容的JDK版本,通常用JDK8即可,可根据你的实际需求调整 sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } // 可选配置:自定义输出JAR的名称和版本 jar { archiveBaseName.set('jtds') archiveVersion.set('1.3.1-custom') }
纯Java库模块默认不会使用Android SDK编译,会直接调用项目配置的普通JDK进行构建,因此org.ietf.jgss这类JDK原生包都可以正常识别,不会报类找不到的错误。
3. 主模块添加子模块依赖
修改主App模块的build.gradle,在依赖块中添加子模块依赖:
dependencies { // 保留原有其他依赖 implementation project(':jtds-custom') }
4. 冲突处理(可选)
如果编译过程中出现类重复或依赖冲突:
- 先删除项目中之前导入的外部jTDS JAR包依赖,避免类重复
- 如果jTDS依赖其他第三方组件,直接在
jtds-custom子模块的dependencies块中添加对应依赖即可,运行时需要的依赖请用api声明,确保主模块可以正常访问
完成以上配置后,每次修改jTDS源码,直接运行主App项目就会自动触发子模块编译、打包JAR、合并到APK中,满足快速测试修改的需求。
内容的提问来源于stack exchange,提问作者TaylanKammer
相关产品推荐
相关产品推荐

