首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Android 12 自动适配 exported 深入解析避坑

众所周知,从 Android 12 开始,使用了 TargetSDK 31 之后,四大组件如果使用了 intent-filter, 但是没显性质配置 exported App 将会无法安装,甚至编译不通过...脚本 所以在之前的 《Android 12 快速适配要点》 一文中提供了一套脚本,专门用于适配 Android 12 下缺少 android:exported 无法编译或者安装的问题,但是在这期间收到了不少问题反馈...新脚本 而目前基于这个问题,这里提供了如下脚本,在 gradle:4.2.0 & gradle-6.7.1-all.zip 以及 7.0 的版本上,该脚本的作用是在运行时自动帮你打印出现问题的 aar...最后 最后再说一个坑 ,如果你是低版本 Gradle 可以打包成功,但是运行到 Android12 机器的时候,可能会因为没有 exported 遇到安装失败的问题: 1、如果是模拟器 12,你可能会看到如下所示的错误提示...'. > java.util.concurrent.ExecutionException: com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException

1.4K30

干货 | Trip.com Android 11 适配之旅

同时 Lint 也会有少许更新,表现出来的状况是所有模块的开发人员都需要检查各自模块是否在编译和 Lint 环节失败了。...这个部分⻛险较低,因为编译失败或者 Lint 失败的话,会体现在 Merge Request 的 Pipeline 失败,必须修复后才能合并到主分支。...除了上述更新之外,因为 Android 11 的包可⻅性用到了 标签,而该标签对 AGP (Android Gradle plugin) 的版本有硬性要求。...如果直接使用的话,可能会遇到如下问题: unexpected element found in 此时我们需要升级 AGP 的版本,具体的限制如下: AGP 的升级同样是需要谨慎评估的...format,举例如下: //编译失败 //编译成功 4.2 第三方库的内部崩溃及间接

1.6K20

Android编译的小知识

认识AGP 简介 AGPAndroid Gradle Plugin,主要用于管理Android编译相关的Gradle插件集合,包括javac,kotlinc,aapt打包资源,D8/R8等都是在AGP...,Gradle是构建工具,而AGP是管理Android编译的插件,是一群java程序的集合。...ps:既然Android编译是通过AGP实现的,AGP就是Gradle插件,那么这个插件是什么时候被apply的呢?因为一个插件如果没有apply的话,那么压根不会执行的。...,生成R.java和resource.arsc AIDL文件编译 将项目中aidl文件编译java文件 Java与Kotlin文件编译 通过Javac和Kotlinc将项目中的java代码,kotlin...回复:当java,kotlin混编的时候,先执行kotlinc将kotlin文件编译成class字节码,再执行javac将java文件编译成class字节码。 为什么kc比javac先执行?

51630

Android Studio 4.2 现已发布!

△ 使用 Database Inspector 查询历史记录 Retrace 命令行工具 - 作为应用编译流程的一部分,R8 会混淆 Kotlin 和 Java 编程语言 代码。...在 Android Studio 4.2 中,我们扩展了与 Apply Changes 相兼容的大量更改,当在 Android 11 以上版本的设备或模拟器上运行时,我们可添加资源 (占需要完全重启的更改的...Android Gradle 插件 4.2 - 我们借助 AGP 4.2 做出了不少显著的更改。首先,我们实施了一个全新的资源编译器,用以提高构建性能,尤其是 Windows 设备上的构建性能。...其次,我们已将默认的 Java 编程语言更新为版本 8。最后,我们为 APK v3 和 APK v4 签名格式添加了支持。您可以查看 相关文档 详细了解其他 AGP 更新。...Java 是 Oracle 和/或其附属公司的注册商标。

1.4K20

Android Gradle 同步优化

其中我之前在哔哩哔哩Android编译优化的独立编译单元中,有介绍过对于所有依赖全部切换成源码之后因为工程太多,所以展开速度过慢的优化思路。...hook agp ProjectsServices 当发现这个值是在AGP中去进行读取的。后续就决定从修改AGP的ProjectsServices进行入手,从而达到关闭jetifier。...因为AGP相关的时机其实并不是特别靠前,而是在Android插件被执行之后的afterEvaluateapi中,所以我们只要在这个执行之前通过反射去修改projectServices就行了。...allProject{ apply plguins:"jetifier_closs.class" } 复制代码 最后我们还是失败了,以前介绍过项目内含有很多个复合构建的项目,然后我们是通过所有子工程...所以我们又失败了。 方法签名检查是否存在support包 最后我们仔细想了想,这种修改还是太过于黑魔法了,万一后面AGP有修改我们也要跟随一起改动。

67110

我们升级适配完AGP 7.0 | 杂谈

想用comopse有两个必选项agp7.0和kotlin版本1.5.31. Java11配置 因为apg7.0需要把所有的module编译环境切换到java11版本上,然而这个地方很容易出错。...同时最好用命令行java --version尝试下输出的版本是不是java11。 as的配置则相对来说比较简单了。 按照这两个配置完成之后重新同步下工程应该就行了。...比如说APk,MANIFEST,MAPPING_FILE,BUNDLE,AAR或者其他的一些编译产物,当前agp给我们提供的也是相对来说比较少的一部分功能。...sourcetSet就是javac的将java转化成class的编译路径。...结尾 AGP对我们这个算是每年一更新了,会碰到一些新的有趣的api以及新的写法。另外每次新版本的AGP对于编译上都有变更和优化。 各位大佬其实有兴趣都可以尝试下对自己的应用进行一次小小的升级。

1.9K30

【错误记录】Android 编译报错 ( The project uses Gradle version which is incompatible with Android Studio )

Studio 工程源码 也是 在 2018 年运行的 , 当时使用 的 Android Studio 版本 , Gradle 构建工具版本 , Android Gradle 插件版本 , 与当前差异很大...; 上述 构建工具 , AS 开发环境 , AGP 插件 , 版本对应关系可以参考 https://developer.android.google.cn/studio/releases/gradle-plugin...文档 ; Android Gradle 插件版本 与 对应的 最低 Gradle 构建工具版本 : Android Gradle 插件版本 所需的最低 Gradle 构建工具版本 8.1 8.0 8.0...8.0 7.4 7.5 7.3 7.4 7.2 7.3.3 7.1 7.2 7.0 7.0 4.2.0+ 6.7.1 Android Gradle 插件版本 ( 旧版本 ) 所需的 Gradle 版本...Android Studio 版本是 Dolphin | 2021.3.1 , 对应的 Android Gradle 插件版本是 3.2-7.3 , 这里选择 最低的 Android Gradle 插件版本

65320

使用新 Android Gradle 插件加速您的应用构建

自 2020 年底,Android Gradle 插件 (AGP) 已经开始使用新的版本号规则,其版本号将与 Gradle 主要版本号保持一致,因此 AGP 4.2 之后的版本为 7.0 (目前最新的版本为...如果您的构建与配置缓存不兼容,那么构建任务会失败,Build Analyzer 会提供相应的调试信息供您参考。...如示例中构建脚本的第 5 和第 11 行导致了这些问题。...您也可以阅读 Android 开发者 文档: 扩展 Android Gradle 插件 或者研读 GitHub 上的 AGP Cookbook。...改进 Kotlin 增量编译 我们还和 JetBrains 一起合作改进 Kotlin 的增量编译,目标是支持所有的增量编译场景,比如修改 Android 资源、添加外部依赖项或修改非 Kotlin 的上游子项目

2.5K30

Android Studio 和 Gradle 插件使用全新版本编号

作者 / Jamal Eason, Product Manager 第一版 Android Studio Arctic Fox (2020.3.1) 以及 Android Gradle 插件 (AGP)...需要记住的一个重要细节是,更新 IDE 时,构建系统执行编译和打包应用的方式不受影响。相反,应用构建流程变更和 APK/Bundle 则会受到您的项目 AGP 版本影响。...Android Gradle 插件的新版本编号方案 在 AGP 7.0.0 中,我们采用了 语义化版本 的原则,并与 AGP 所需的 Gradle 版本保持一致。...Android Studio 和 Android Gradle 插件之间的兼容性不会更改。您可以使用更新版本的 Android Studio 打开使用稳定版 AGP 的项目。...△ Layout Validation 最后,对于在 MacOS (即将支持其他平台) 下运行最新版 Android Platform 工具以及使用 Android 11 设备的用户,您可以前往 Run

1.4K40
领券