You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android13自定义Settings克隆应用无法访问com.android.i18n库求助

问题原因与解决方案

原因分析

Android 13(r31分支)对系统私有库的访问权限做了严格限制,com.android.i18n.timezone下的类属于系统私有API/库,仅允许满足以下条件的应用访问:

  • 正确声明了对应库的构建依赖
  • 拥有系统签名(或符合系统应用的权限配置)

原Settings应用的构建配置中已经默认包含了对该库的依赖,且具备系统应用的权限属性;而你克隆的MySettings仅修改了应用名称和基础配置,未同步添加这些关键依赖与权限声明,导致编译时无法解析相关类。

解决步骤

1. 同步系统库依赖配置

打开MySettings目录下的Android.bp文件,找到android_app节点,添加对com.android.i18n相关库的依赖(直接参考原Settings的Android.bp配置):

android_app {
    name: "MySettings",
    // 其他已修改的配置...
    static_libs: [
        // 复制原Settings中相关的时区库依赖
        "com.android.i18n.timezone.countryzones",
        "com.android.i18n.timezone.common",
    ],
    // 若原Settings使用共享库依赖,补充以下内容
    shared_libs: [
        "libcountryzones",
        "libtimezonedata",
    ],
}

2. 同步系统应用权限配置

复制原Settings的AndroidManifest.xml中的关键配置到MySettings的Manifest:

  • 添加android:sharedUserId="android.uid.system"属性,确保应用具备系统用户ID
  • 同步原Settings中与时区、系统设置相关的权限声明(如android.permission.MANAGE_TIME_ZONE等)

3. 重新编译验证

执行以下命令重新编译:

mmm packages/apps/MySettings -j$(nproc)

若仍有问题,可先清理旧编译产物再构建:

make clean packages/apps/MySettings
mmm packages/apps/MySettings

内容的提问来源于stack exchange,提问作者Sadman Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 02:05:05