iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android Studio 导入framework.jar的两种方式
  • 244
分享到

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

androidstudioandroidjar 2023-10-03 10:10:17 244人浏览 八月长安
摘要

第一种:把framework的jar包放到工程目录外 把framework.jar包放到当前工程以外的地方。例如我放到SDK目录下。如下图  2、在项目根目录的gradle中引入jar包 String SDK_DIR = System.g

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

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

 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")

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

引入后我们去使用会发现不会优先使用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) {        }    }}

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

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

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

compileOnly files("$rootProject.rootDir/syslibs/framework.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) {        }    }}

来源地址:https://blog.csdn.net/qq_37909114/article/details/130495065

--结束END--

本文标题: Android Studio 导入framework.jar的两种方式

本文链接: https://www.lsjlt.com/news/422984.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作