Android 使用framework.jar或系统jar包依赖方式

news/2024/5/20 2:51:31 标签: android, java, app, framework, gradle

第一步

新建syslibs目录(可根据自己需求修改名称)在src同级目录,然后放入需要依赖的系统jar包,这样不放在libs目录下可以避免65535的方法数限制

第二步

在Project build.gradle目录下添加如下代码

allprojects {
    repositories {
        google()
        jcenter()
    }
    //添加  其中app 根据你的module的名称进行替换, 后面的路径文件名都可以根据实际情况进行替换,但是开头的-Xbootclasspath/p:  这个是关键字
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:app\\syslibs\\framework.jar')
            options.compilerArgs.add('-Xbootclasspath/p:app\\syslibs\\android.jar')
            options.compilerArgs.add('-Xbootclasspath/p:app\\syslibs\\layoutlib.jar')
        }
    }
}

第三步

在Module build.gradle目录下添加如下代码(经测试,貌似非必需)

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) {
            // nop, iml not found
        }
    }
}

至此,编译后会发现报错的系统类不再报错影响正常的编译


http://www.niftyadmin.cn/n/794006.html

相关文章

mysql怎么部署多实例_MySQL多实例部署

MySQL多实例搭建toc一、什么是MySQL多实例MySQL的多实例就是在一台机器上开启多个不同的服务端口,运行多个MySQL服务进程,使用不同的socket来监听这多个不同的端口以此提供服务,这一点和Oracle的多实例类似。这些MySQL的实例共用相同的MySQL但…

Android-隐藏app图标以及隐式启动

隐藏APP桌面图标 <activity android:name".LaunchActivity"><intent-filter><action android:name"android.intent.action.MAIN" /><data android:host"LaunchActivity" android:scheme"com.alight.android.magic_la…

java的青蛙跳井_2015年国家公务员《行测》数量关系专项突破(6)

1( 单选题 )建造一个容积为16立方米、深为4米的长方体无盖水池&#xff0c;如果池底和池壁的造价分别为每平方米160元和每平方米100元&#xff0c;那么该水池的最低总造价是多少元?( )A. 3980B. 3560C. 3270D. 3840正确答案是 D&#xff0c;来源&#xff1a;湖北2010考点&…

Android Studio插件实现语言国际化

第一步&#xff1a; 首先要先下载AndroidStudioPlugin https://github.com/Airsaid/AndroidLocalizePlugin 第二步&#xff1a; 通过 点击AndroidStudio菜单下Preference找到Plugin通过目录方式安装 选择install plugin from Disk 第三步&#xff1a; 选中下载存放在硬盘…

java输出byte log_GitHub - houbb/auto-log: The auto log tool for java.(java 自动日志输出,基于字节码,兼容 spring)...

auto-logauto-log 是一款为 java 设计的自动日志监控框架。创作目的经常会写一些工具&#xff0c;有时候手动加一些日志很麻烦&#xff0c;引入 spring 又过于大材小用。所以希望从从简到繁实现一个工具&#xff0c;便于平时使用。特性基于注解字节码&#xff0c;配置灵活自动适…

Glide无法加载https图片的完全解决方案

在项目当中出现加载https图片失败&#xff0c;但是将图片url直接复制到浏览器是可以正常访问的&#xff0c;如果你也是出现类似问题可以参考如下解决方案。 首先出现这个问题的原因是因为https协议必须要有CA证书才可以访问&#xff0c;所以问题的本质是我们在通过https请求进…

Android Gradle 插件版本和 Android Studio版本对应关系

Android Studio 构建系统基于 Gradle&#xff0c;而 Android Gradle 插件添加了几个特定于构建 Android 应用的功能。 下表列出了每个版本的 Android Studio 所需的 Android Gradle 插件版本: 根据自己的AndroidStudio版本去下载对应的Android Gradle 插件

fxml里面引用java格式_JavaFX在加载fxml文件并设置其Label文本时发出错误

我昨天提出了类似的问题&#xff0c;但我认为它没有得到很好的解释&#xff0c;所以我想再问一遍&#xff0c;但我在代码中做了一些改动 . 如果我写得太多&#xff0c;我会道歉&#xff0c;但我想让一切都变得可以理解 .所以&#xff0c;我正在制作一个口袋妖怪模拟器&#xff…