实战:Android 15 (API 35) 适配 & 构建踩坑全记录

一、为什么要适配 API 35?

  • Google Play 政策要求(2025 年 8 月 31 日前必须使用目标 API ≥ 35),新应用和应用更新必须以 Android 15(API 级别 35)或更高版本为目标平台,才能提交到 Google Play;但 Wear OS、Android Automotive OS 和 Android TV 应用除外,这三类应用必须以 Android 14(API 级别 34)或更高版本为目标平台

二、初次尝试升级 API 35:targetSdkVersioncompileSdkVersion 升级

  • 如何修改 build.gradletargetSdkcompileSdk)由原来的34改成35

  • 使用 Android Studio - Tools - SDK Manager 里面勾选 `Android API 35` - Apply - OK

  • 当你作完这些操作,以为一切都如你所愿的时候

  • 构建失败:AAPT2 报错日志初现,具体报错如下:

    Android resource linking failed ERROR: AAPT: aapt2 E 07-08 17:18:37 14244 191554 LoadedArsc.cpp:94] RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data. aapt2 E 07-08 17:18:37 14244 191554 ApkAssets.cpp:152] Failed to load resources table in APK '/Users/sady/Library/Android/sdk/platforms/android-35/android.jar'. error: failed to load include path /Users/sady/Library/Android/sdk/platforms/android-35/android.jar.


三、遇到的核心错误:AAPT2 linking failed

  • 错误信息详解:

    • RES_TABLE_TYPE_TYPE entry offsets overlap actual entry data

    • failed to load resources table in APK

    • failed to load include path android-35/android.jar

  • 原因分析:资源表损坏 or SDK platform 下载不完整


四、彻底排查 & 解决流程

  1. 删除损坏的 android-35 SDK:

    复制代码
    rm -rf ~/Library/Android/sdk/platforms/android-35
  2. 清除 SDK 缓存(可选但推荐):

    复制代码
    rm -rf ~/.android/cache
  3. 使用 CLI 工具重新下载 SDK:

    复制代码
    sdkmanager --sdk_root=$HOME/Library/Android/sdk "platforms;android-35"
  4. 验证 android.jar 和资源目录是否完整

  5. 检查所有模块(含 SDK module)是否引用正确版本

  6. 一顿操作下来,还是报一样的错误,崩溃了😡


五、最终解决方案

  • 升级 File - Project Structure里面的这两个版本

当你在项目中将 compileSdkVersiontargetSdkVersion 升级到 API 35(Android 15) 时:

  • 旧版本的 Android Gradle Plugin(如 7.3.x 或更低)并没有为 API 35 做适配

  • 旧版 AGP 内部调用的 AAPT2 工具 对新的资源格式或资源表结构支持不足

相关推荐
牛马11113 小时前
flutter Riverpod 中的 overrideWith
android·java·flutter
2501_9371931414 小时前
TV 电视影视大全:全终端流畅观影技术解析
android·源码·源代码管理·机顶盒
catchadmin14 小时前
PHP 现在可以零成本构建原生 iOS 和 Android 应用 NativePHP for Mobile v3 发布
android·ios·php
独自破碎E14 小时前
【回溯】二叉树的所有路径
android·java
安卓机器14 小时前
安卓玩机工具推荐------免root权限使用的 支持安卓4至安卓16系统的系统开源应用 推荐
android·反编译apk
summerkissyou198714 小时前
android-蓝牙-广播启动-startAdvertising和startAdvertisingSet区别
android·蓝牙
雪球Snowball14 小时前
【Android关键流程】Configuration变更时更新应用程序配置
android
h7ml14 小时前
于 CompletableFuture 的异步编排优化企业微信通知发送性能
android·windows·企业微信
子木鑫14 小时前
[SUCTF 2019] CheckIn1 — 利用 .user.ini 与图片马构造 PHP 后门并绕过上传检测
android·开发语言·安全·php
风清云淡_A14 小时前
【ANDROID】使用webview实现加载第三方的网页效果
android