996sm
996sm
  • 发布:2026-01-16 19:30
  • 更新:2026-01-16 19:40
  • 阅读:18

uni-app x 离线打包后配置对应文件之后 调用 uni.scanCode 没有调用到相机 在扫码页一直黑屏

分类:uni-app x

相关配置文件

//uni-camera
buildConfigField 'String', 'UTSEasyCom', '"[{\"class\":\"uts.sdk.modules.DCloudUniCamera.UniCameraExtApiComponentsRegister\",\"method\":\"register\"}]"'
//uni-scanCode
buildConfigField 'String', 'UTSEasyCom', '"[{\"class\":\"uts.sdk.modules.DCloudUniScanCode.UniScanCodeExtApiPagesRegister\",\"method\":\"register\"}]"'
//uni-barcode-scanning
buildConfigField 'String[]', 'UTSHooksClassArray', '{"uts.sdk.modules.DCloudUniBarcodeScanning.AppHookProxy"}'

implementation "com.alibaba:fastjson:1.2.83"
implementation "com.facebook.fresco:fresco:3.4.0"
implementation "com.facebook.fresco:middleware:3.4.0"
implementation "com.facebook.fresco:animated-gif:3.4.0"
implementation "com.facebook.fresco:webpsupport:3.4.0"
implementation "com.facebook.fresco:animated-webp:3.4.0"
implementation "com.caverock:androidsvg:1.4"
implementation "com.github.bumptech.glide:glide:4.9.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
implementation "org.jetbrains.kotlin:kotlin-reflect:2.2.0"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
implementation "com.squareup.okhttp3:okhttp:3.12.12"
implementation "com.github.getActivity:XXPermissions:18.63"
implementation "net.lingala.zip4j:zip4j:2.11.5"
implementation "androidx.activity:activity-ktx:1.9.2"
//uni-camera
implementation "androidx.camera:camera-core:1.4.1"
implementation "androidx.camera:camera-camera2:1.4.1"
implementation "androidx.camera:camera-lifecycle:1.4.1"
implementation "androidx.camera:camera-view:1.4.1"
implementation "androidx.appcompat:appcompat:1.7.0"
//uni-barcode-scanning
implementation "com.google.mlkit:barcode-scanning:17.2.0"
implementation "com.github.albfernandez:juniversalchardet:2.0.4"

2026-01-16 19:30 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

根据您描述的问题和提供的配置信息,结合uni-app x相关文档和issue记录,分析如下:

  1. 关键问题:您可能混淆了uni.scanCode API和camera组件的扫码模式。从issue #15407和#18487可知,uni-app x中扫码功能主要通过camera组件的mode="scanCode"实现,而非直接调用uni.scanCode

  2. 配置缺失:虽然您配置了build.gradle中的UTSHooksClassArray,但必须在manifest.json中显式声明uni-barcode-scanning模块。参考文档

    {  
    "app-android": {  
    "distribute": {  
      "modules": {  
        "uni-barcode-scanning": {}  
      }  
    }  
    },  
    "app-ios": {  
    "distribute": {  
      "modules": {  
        "uni-barcode-scanning": {}  
      }  
    }  
    }  
    }
  3. 正确用法

    • 不要直接调用uni.scanCode()(该API在uni-app x中尚未完全支持)
    • 应使用camera组件并设置mode="scanCode",参考官方示例
      <camera mode="scanCode" @scancode="handleScanCode"></camera>  
  4. 其他注意事项

    • 确保HBuilderX版本≥4.71(扫码功能从该版本开始支持)
    • 检查相机权限配置(Android需添加<uses-permission android:name="android.permission.CAMERA"/>
    • issue #18903提到iOS设备需特别注意模块配置,云打包后需重新提交
  5. 排查建议

    • 对比hello-uni-app-x示例项目中的camera-scan-code实现
    • 确认是否已按文档要求配置
    • 若仍黑屏,检查是否遗漏了camera组件的尺寸定义(需明确宽高)

请优先确保manifest.json中正确配置uni-barcode-scanning模块,并使用camera组件而非uni.scanCode API。更多细节可查看扫码功能文档

内容为 AI 生成,仅供参考
996sm

996sm (作者)

加入了 权限 <uses-permission android:name="android.permission.CAMERA"/> 有勾选 相机组件扫码 这个也有 还是这样 "modules": {
"uni-barcode-scanning": {}
}

要回复问题请先登录注册