实战: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 工具 对新的资源格式或资源表结构支持不足

相关推荐
一起搞IT吧2 小时前
相机Camera日志实例分析之五:相机Camx【萌拍闪光灯后置拍照】单帧流程日志详解
android·图像处理·数码相机
浩浩乎@2 小时前
【openGLES】安卓端EGL的使用
android
Kotlin上海用户组3 小时前
Koin vs. Hilt——最流行的 Android DI 框架全方位对比
android·架构·kotlin
zzq19964 小时前
Android framework 开发者模式下,如何修改动画过度模式
android
木叶丸4 小时前
Flutter 生命周期完全指南
android·flutter·ios
阿幸软件杂货间4 小时前
阿幸课堂随机点名
android·开发语言·javascript
没有了遇见4 小时前
Android 渐变色整理之功能实现<二>文字,背景,边框,进度条等
android
没有了遇见5 小时前
Android RecycleView 条目进入和滑出屏幕的渐变阴影效果
android
站在巨人肩膀上的码农6 小时前
去掉长按遥控器power键后提示关机、飞行模式的弹窗
android·安卓·rk·关机弹窗·power键·长按·飞行模式弹窗
呼啦啦--隔壁老王6 小时前
屏幕旋转流程
android