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

Android 12/13使用Capacitor相机插件时应用崩溃重启求助

解决方案

针对Android 12/13下Capacitor相机插件拍照确认后崩溃的问题,可按以下步骤排查解决:

1. 升级Capacitor相机插件及核心库

Capacitor 4.2.0属于较旧版本,未针对Android 12/13的权限、进程管理规则做适配,优先升级至对应分支的最新版本:

  • 升级相机插件:
    npm install @capacitor/camera@latest
    
  • 同步Android项目:
    npx cap sync android
    

若升级后仍有问题,可尝试将Capacitor核心库也升级至4.x系列的最新稳定版。

2. 替换Base64返回类型为Uri

高分辨率照片的Base64编码会占用大量内存,Android 12/13的内存管控更严格,极易触发OOM崩溃。修改代码使用Uri方式获取图片:

import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';

const image = await Camera.getPhoto({
  quality: 80, // 适当降低质量减少内存压力
  resultType: CameraResultType.Uri,
  source: CameraSource.Camera,
});
this.imageUrl = image.webPath; // 直接通过webPath加载图片

3. 检查AndroidManifest.xml配置

确保相机相关组件符合Android 12+的要求:

  • 确认Capacitor相机的Activity已设置android:exported="true"(通常插件会自动配置,但手动检查更稳妥):
    <activity
        android:name="com.getcapacitor.plugin.camera.CameraActivity"
        android:exported="true"
        android:theme="@style/CapacitorCamera" />
    
  • 添加Android 13+的媒体权限(若涉及图片读取):
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    

4. 抓取系统崩溃日志定位根因

调试进程终止时,可通过adb logcat命令获取系统级崩溃日志:

adb logcat *:E

拍照确认后,过滤日志中的AndroidRuntime相关信息,可得到具体崩溃堆栈,进一步定位问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:47:29