Android Studio 导入framework.jar的两种方式

这篇具有很好参考价值的文章主要介绍了Android Studio 导入framework.jar的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一种:把framework的jar包放到工程目录外

1、把framework.jar包放到当前工程以外的地方。例如我放到SDK目录下。如下图

android studio引用framework.jar,原创,android studio,android,jar

 2、在项目根目录的gradle中引入jar包

String SDK_DIR = System.getenv("ANDROID_SDK")
if (SDK_DIR == null) {
    Properties props = new Properties()
    props.load(new FileInputStream(project.rootProject.file("local.properties")))
    SDK_DIR = props.get('sdk/platforms.dir');
}

...

compileOnly files("$SDK_DIR/framework.jar")

android studio引用framework.jar,原创,android studio,android,jar

 导入后我们可以在项目中导入的包 External Libraries 中找到“Gradle D”的包。是因为我的SDK在D盘下,framework包放在SDK包下。

android studio引用framework.jar,原创,android studio,android,jar

3、引入后我们去使用会发现不会优先使用framework下的api。这是因为在项目中会默认优先使用android.jar的api。所以我们需要把framework包使用优先级排到前面。在根目录下的gradle中添加配置,在Xbootclasspath中添加framework.jar。然后添加prebuild配置使framework优先级在最前面。

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs.add("-Xbootclasspath/p:$SDK_DIR/syslibs/framework.jar")
    }
}
preBuild {
    doLast {
        def imlFile = file(project.name + ".iml")
        println('Change ' + project.name + '.iml order')
        try {
            def parsedXml = (new XmlParser()).parse(imlFile)
            def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
            parsedXml.component[1].remove(jdkNode)
            def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
            new groovy.util.Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
            groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
        } catch (FileNotFoundException e) {

        }
    }
}

android studio引用framework.jar,原创,android studio,android,jar

第二种:把framework的jar包放到工程目录下,如放到单独的目录或者lib目录都可以。(这里介绍放到单独新建的目录)如下

1、在项目目录下新建一个目录如 syslibs (名称随意)

android studio引用framework.jar,原创,android studio,android,jar

 2、在项目根目录的gradle中引入jar包

compileOnly files("$rootProject.rootDir/syslibs/framework.jar")

android studio引用framework.jar,原创,android studio,android,jar

 3、重复第一种的第三步,如下

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs.add("-Xbootclasspath/p:$rootProject.rootDir/syslibs/framework.jar")
    }
}
preBuild {
    doLast {
        def imlFile = file(project.name + ".iml")
        println('Change ' + project.name + '.iml order')
        try {
            def parsedXml = (new XmlParser()).parse(imlFile)
            def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
            parsedXml.component[1].remove(jdkNode)
            def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
            new groovy.util.Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
            groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
        } catch (FileNotFoundException e) {

        }
    }
}

android studio引用framework.jar,原创,android studio,android,jar文章来源地址https://www.toymoban.com/news/detail-706773.html

到了这里,关于Android Studio 导入framework.jar的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio中如何导入jar包(详细教程)

    进入Android studio 点击Android 选择project 复制好要导入的jar包,把jar包粘贴在app——libs里 导入后 右击jar包,再选择Add As Library..... 选择OK 好了(自动添加依赖)

    2024年02月12日
    浏览(33)
  • android 9.0以上版本,获取U盘路径的两种方式

    第一种,通过DocumentProvider: 第二种,通过StorageManager,无法使用的记得用反射;

    2024年02月13日
    浏览(31)
  • 阿里二面:adb 连接 Android 手机的两种方式,看完你就懂了...

    随着现在移动端技术的突飞猛进,导致现在市场上,APP 应用数不胜数,那对于测试工程师而言,对于 APP 的测试,那基本就是一个必修课了。 今天,我就来给大家介绍一下,adb 连接 Android 手机的两种方式 先使用 USB 线,连接 PC 和手机 通过 PC 给手机安装 adb 驱动,下载好安

    2024年03月22日
    浏览(40)
  • 华为二面:adb 连接 Android 手机的两种方式,看完你就懂了

    随着现在移动端技术的突飞猛进,导致现在市场上,APP 应用数不胜数,那对于测试工程师而言,对于 APP 的测试,那基本就是一个必修课了。 今天,我就来给大家介绍一下,adb 连接 Android 手机的两种方式 先使用 USB 线,连接 PC 和手机 通过 PC 给手机安装 adb 驱动,下载好安

    2024年02月09日
    浏览(41)
  • 如何在Android studio导入jdk9及以上版本中依赖包,如'rt.jar',' dt.jar'等

    1、如何获取jdk9及以上版本中依赖包,如\\\'rt.jar\\\',\\\' dt.jar\\\'等 ​在jdk9及后续版本中,jdk开始使用模块化规则,实现更好的封装和定义良好的接口,近一步加强了java的自由度,开发者可以定制化SDK ​包括rt.jar在内的依赖均已移除,以模块化形式更高效的存诸在 JAVA_HOME/jmods 目录下

    2023年04月25日
    浏览(38)
  • SpringBoot项目的两种发布方式(jar包和war包)

    1.1、在pom.xml中添加一个SpringBoot的构建的插件 1.2、在maven视图中,双击“package”,在target中会产生xxx.jar包 1.3、将生成的jar包复制到任意文件夹中,通过java -jar 命令运行该jar包 浏览器访问结果如下: 2.1、在pom.xml文件中将jar修改为war 2.2、设置tomcat启动器依赖范围 2.3、设置war包

    2024年01月17日
    浏览(45)
  • Feign API模块导入的两种方式

    说明:在微服务框架中,会把其他微服务用到的FeignClient统一放到一个模块里面,称为FeignAPI,其他微服务需要使用FeignClient,可以引入FeignAPI的Maven坐标。 但是只引入FeignAPI的坐标还不行,FeignAPI中的Bean对象是孤立的,还需要把FeignAPI中的Bean对象加入到IOC容器中才可以正常使用

    2024年02月15日
    浏览(23)
  • Android Studio 导出 jar

    AS版本:Android Studio Giraffe | 2022.3.1 Patch 1 1、File——New Module——Android Library 2、mylibrary——main——新建功能类 3、mylibrary——build.gradle——android {}内复制以下代码——Sync Now //Copy类型 tasks.register(\\\'makeJar\\\', Copy) { //删除存在的 delete \\\'libs/sp-lib.jar\\\' //设置拷贝的文件 from(\\\'build/interme

    2024年02月08日
    浏览(24)
  • Docker-Jenkins编译android-app的两种方案

    android开发使用jenkins编译,自动集成修改点/自动命名/自动备份,将修改的apk发布到测试服务器+发布网盘,而不需要用通讯工具传来传去。 jenkins用在互联网开发编译比较常见,如果android开发也想用,该怎么设计呢? 由于用jenkins开发android app的文章比较多,本文只提炼了干货

    2024年01月23日
    浏览(34)
  • Android原生键盘弹起,H5页面被压缩的两种解决方案

    移动H5项目中,会出现input框获得焦点键盘弹出把页面元素顶上去压缩到一起,影响页面布局. 方案一:监听页面变化,动态的展示和隐藏底部被顶上来的内容 这种方法经调试还不算十分完美 方案二:监听页面变化,键盘弹起时将变化之前的高度赋值给压缩后的页面         这种

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包