uniapp 如何设置android:exported="false"

在uniapp开发中,如何设置AndroidManifest.xml中的android:exported属性为false?我在manifest.json里配置了相关参数,但打包后生成的AndroidManifest.xml中该属性仍然为true。请问正确的配置方式是什么?需要修改哪些文件才能生效?

2 回复

manifest.json 中的 app-plusdistributeandroid 下添加:

"xmls": [
  {
    "name": "AndroidManifest.xml",
    "parent": "/manifest/application",
    "nodes": [
      {
        "name": "activity",
        "attrs": {
          "android:exported": "false"
        }
      }
    ]
  }
]

在 UniApp 中设置 android:exported="false" 需要在原生配置文件中修改,具体步骤如下:

  1. 找到并编辑 AndroidManifest.xml 文件

    • 路径:项目根目录/nativeplugins/插件名/android/AndroidManifest.xml(如果使用原生插件)或自定义模块配置。
  2. 修改目标 Activity 或 Service 的配置: 在对应组件标签内添加 android:exported="false" 属性。例如:

    <activity
        android:name=".YourActivity"
        android:exported="false">
    </activity>
    
  3. 重新打包生成 APK: 通过 HBuilderX 重新编译或使用自定义基座调试。

注意事项

  • 此操作需熟悉原生 Android 开发,确保修改的组件无需被外部应用调用。
  • 如果使用云打包,需通过 manifest.json 的 “App模块配置” 添加原生配置。
  • 错误设置可能导致功能异常(如无法接收特定广播或服务调用)。

建议先备份文件,并在真机测试确认功能正常。

回到顶部