栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android Studio添加framwork.jar依赖相关问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android Studio添加framwork.jar依赖相关问题

Android Studio Arctic Fox添加framwork.jar依赖相关问题
  • 添加framework依赖步骤
    • 1. 找到jar包
    • 2. 将上方获取到的framework.jar拷贝到需要引用的模块(module)中
    • 在需要修改的模块的build.gradle中添加编译参数修改
    • Sync Project with Gradle Files

目前,Android studio更新了大版本Artic Fox,有幸在被迫安装了这个版本后踩坑,今天记录一篇在添加framework.jar依赖遇到的坑及解决方案,以及抛出未解决的问题向大佬们求助。

添加framework依赖步骤 1. 找到jar包

网上流传最广的jar包目录:

out/target/common/obj/JAVA_LIBRARY/framework_interminate/classes.jar

我可以告诉你,从最近几代的Android的目录结构可以看出,编译的中间文件早就不在这里面了,针对较新的平台(按照理论来说,引入soong的Android N及其以后应该都是遵循下方的目录结构了),可以按照如下来找:

Android 9/10:
out/soong/.intermediates/frameworks/base/framework/android_common/combined/framework.jar

Android 11:
out/soong/.intermediates/frameworks/base/framework-minus-apex/android_common/combined/framework-minus-apex.jar
2. 将上方获取到的framework.jar拷贝到需要引用的模块(module)中

如果你仅有app这一个module,即复制到下面路径内:

<$project>/app/libs/framework.jar

或者如下:

同理,如果单独的一个module在使用,比如module名为framework-ext,则放在这里:

<$project>/framework-ext/libs/framework.jar

然后右键framework.jar文件,然后Add as Library ,再选当前的module

然后修改对应模块的build.gradle,将:implementation files(‘libs/framework.jar’)的引用方式更换为compileonly files(‘libs/framework.jar’):
compileonly 命令的意思是:只在编译时有效,不会参与打包

在需要修改的模块的build.gradle中添加编译参数修改

以截止目前最新的Android Studio Preview (Arctick Fox 2020.3.1 Beta 3版本号203.7717.56.2031.7395685)为例:
由于没有了iml中间文件,且-Xbootclasspath/p修改方式不生效;因此Android Studio 3.x的修改方法不适用于Android Studio 4.x上;
经验证,修改bootclasspath的方法是,在需要修改的模块的build.gradle中添加如下编译参数修改:

android {
	...
    gradle.projectsevaluated {
        tasks.withType(JavaCompile) {
            Set fileSet = options.bootstrapClasspath.getFiles()
            List newFileList =  new ArrayList<>();
            //JAVA语法,可连续调用,输入参数建议为相对路径
            newFileList.add(new File("libs/XXX.jar"))
            newFileList.add(new File("libs/framework.jar"))
            //最后将原始参数添加
            newFileList.addAll(fileSet)
            options.bootstrapClasspath = files(
                    newFileList.toArray()
            )
        }
    }
}

Sync Project with Gradle Files

点击如下两个地方:

如果这样依然不能导入jar包可以联系我,互相探讨,或者有更好的方法也请评论在下方,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号