uni-app 自定义AndroidManifest.xml 云打包后 展示为 android:usesPermissionFlags="0x00010000"

uni-app 自定义AndroidManifest.xml 云打包后 展示为 android:usesPermissionFlags=“0x00010000”

开发环境 版本号 项目创建方式
Windows 11 HBuilderX

操作步骤:

  • 打包使用自定义 AndroidManifest.xml 文件,增加配置 <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />

预期结果:

  • 云打包后,AndroidManifest.xml 文件实际展示为
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
    
  • Android 12 及以上机型,蓝牙不申请定位权限就能搜索到设备,

实际结果:

  • 云打包后,AndroidManifest.xml 文件实际展示为
    <uses-permission
    android:name="android.permission.BLUETOOTH_SCAN"
    android:usesPermissionFlags="0x00010000" 
    
  • 不申请定位权限搜不到设备

bug描述:

  • 打包使用自定义 AndroidManifest.xml 文件,增加配置 <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
  • 云打包后,AndroidManifest.xml 文件实际展示为
    <uses-permission
    android:name="android.permission.BLUETOOTH_SCAN"
    android:usesPermissionFlags="0x00010000" 
    

更多关于uni-app 自定义AndroidManifest.xml 云打包后 展示为 android:usesPermissionFlags="0x00010000"的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

官方怎么看,电脑看还是手机看,一个人回复或者记录工单的都没吗

更多关于uni-app 自定义AndroidManifest.xml 云打包后 展示为 android:usesPermissionFlags="0x00010000"的实战教程也可以访问 https://www.itying.com/category-93-b0.html


连个场面话都不回复下?? 是安卓自定义AndroidManifest.xml 没法做到还是合并清单文件有问题

我也是,配置了AndroidManifest.xml ,云打包后也不给我弹错误,但是就是没办法调试了

在使用 uni-app 进行云打包时,如果你想自定义 AndroidManifest.xml 文件中的某些配置,可能会遇到一些问题,比如你提到的 android:usesPermissionFlags="0x00010000" 展示问题。

问题分析

android:usesPermissionFlags 是 Android 系统中用于指定权限使用标志的属性。0x00010000 是一个十六进制的标志值,通常用于表示某些特定的权限使用方式。

在 uni-app 的云打包过程中,AndroidManifest.xml 文件会自动生成,并且可能会根据 uni-app 的配置和插件生成一些默认的权限和标志。如果你在自定义 AndroidManifest.xml 时没有正确配置,可能会导致某些属性被自动替换为默认值。

解决方案

要解决这个问题,你可以尝试以下几种方法:

1. 使用 manifest.json 进行配置

uni-app 提供了 manifest.json 文件来配置 Android 和 iOS 的打包信息。你可以通过 manifest.json 来配置所需的权限,而不需要直接修改 AndroidManifest.xml

{
  "android": {
    "permissions": [
      "android.permission.INTERNET",
      "android.permission.ACCESS_FINE_LOCATION"
    ],
    "permissionFlags": {
      "android.permission.ACCESS_FINE_LOCATION": "0x00010000"
    }
  }
}

2. 使用 HBuilderX 的自定义 AndroidManifest.xml

如果你确实需要直接修改 AndroidManifest.xml,可以在 HBuilderX 中创建一个 nativeplugins 文件夹,并在其中放置自定义的 AndroidManifest.xml 文件。

  1. 在项目根目录下创建 nativeplugins 文件夹。
  2. nativeplugins 文件夹中创建 AndroidManifest.xml 文件,并添加你需要的配置。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
        android:usesPermissionFlags="0x00010000" />

    <application
        android:name=".MyApplication"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
  1. manifest.json 中引用这个自定义的 AndroidManifest.xml
{
  "android": {
    "customManifest": "nativeplugins/AndroidManifest.xml"
  }
}
回到顶部