构建集成tesseract.js与Capacitor的Ionic安卓项目时遇UNIFIED_TEST_PLATFORM错误
解决安卓构建错误及相机+Tesseract.js集成方案
一、修复Gradle构建错误
针对Cannot convert string value 'UNIFIED_TEST_PLATFORM' to an enum value错误,按以下步骤处理:
升级Capacitor安卓插件版本
确保@capacitor/android版本兼容AGP 8.0,执行命令:npm install @capacitor/android@latest npx cap sync android匹配Gradle Wrapper版本
打开安卓项目下gradle/wrapper/gradle-wrapper.properties,确保distributionUrl指向Gradle 8.0及以上版本:distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip清理过时配置
检查安卓项目的模块级和根级build.gradle,删除包含UNIFIED_TEST_PLATFORM的配置行(如android.defaultConfig.testOptions.unifiedTestPlatform true);若为第三方插件引入的该配置,更新对应插件到最新版本。重置构建缓存
进入安卓项目目录,执行:./gradlew clean ./gradlew assembleDebug
二、确保相机与Tesseract.js功能正常
相机插件配置
- 安装插件:
npm install @capacitor/camera - 在安卓项目
AndroidManifest.xml添加权限:<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> - 拍照示例代码:
import { Camera, CameraResultType, CameraSource } from '@capacitor/camera'; async takePhoto() { const image = await Camera.getPhoto({ quality: 90, allowEditing: false, resultType: CameraResultType.Uri, source: CameraSource.Camera }); this.recognizeText(image.webPath!); }
Tesseract.js文本识别
- 安装依赖:
npm install tesseract.js - 识别示例代码:
import Tesseract from 'tesseract.js'; async recognizeText(imageUrl: string) { const worker = await Tesseract.createWorker('eng'); // 可替换为'chi_sim'等语言包 const { data: { text } } = await worker.recognize(imageUrl); console.log('识别结果:', text); await worker.terminate(); return text; }
内容的提问来源于stack exchange,提问作者Parag More
相关产品推荐
相关产品推荐

