Android 常见问题
集成问题
Q: 引擎创建失败怎么办?
A: 检查以下几点:
- 确认
appId和appKey是否正确 - 检查网络连接是否正常
- 查看日志输出获取详细错误信息
- 确认 SDK 版本是否最新
Q: 编译时找不到类或方法?
A: 可能的原因:
- 确认已正确添加
facebetter.aar依赖 - 检查
build.gradle配置是否正确 - 尝试 Clean Project 后重新构建
- 确认使用的是正确的包名
com.pixpark.facebetter
Q: 运行时出现 UnsatisfiedLinkError?
A: 解决方案:
- 确认设备架构是否支持(arm64-v8a, armeabi-v7a)
- 检查 AAR 文件是否完整
- 确认没有混淆 native 方法
功能问题
Q: 美颜效果不明显?
A: 可以尝试:
- 增加美颜参数值(范围 0.0-1.0)
- 确保启用了对应的美颜类型
- 检查图像质量是否足够清晰
- 确认人脸检测是否正常
Q: 美颜效果过度或失真?
A: 建议:
- 降低美颜参数值
- 检查参数组合是否合理
- 避免同时启用过多美颜类型
- 根据图像质量调整参数
Q: 虚拟背景不生效?
A: 检查:
- 确认已启用
BeautyType.VIRTUAL_BACKGROUND - 检查背景图片路径是否正确
- 确认图片格式是否支持(PNG、JPG)
- 检查图片文件是否存在且可读
性能问题
Q: 处理速度慢怎么办?
A: 优化建议:
- 使用 VIDEO 模式进行实时处理
- 降低图像分辨率
- 减少同时启用的美颜类型
- 及时释放不用的图像对象
- 避免在主线程进行图像处理
Q: 内存占用过高?
A: 解决方案:
- 使用
ByteBuffer.allocateDirect()创建直接内存缓冲区 - 及时调用
release()方法释放资源 - 避免频繁创建和销毁引擎实例
- 复用
ImageFrame对象
Q: 应用崩溃或 ANR?
A: 排查步骤:
- 检查是否在主线程进行图像处理
- 确认资源释放是否完整
- 查看日志中的异常信息
- 检查参数值是否在有效范围内
图像处理问题
Q: 如何处理不同格式的图像?
A: 使用 ImageFrame 的格式转换方法:
toRGBA()- 转换为 RGBA 格式toI420()- 转换为 I420 格式toNV21()- 转换为 NV21 格式(Android 相机默认格式)toBGRA()- 转换为 BGRA 格式
Q: 相机预览图像处理?
A: 建议流程:
- 从相机获取 YUV 数据
- 使用
createWithAndroid420()创建 ImageFrame - 调用
processImage()处理 - 转换为目标格式显示
Q: 图像旋转问题?
A: 解决方案:
- 使用
ImageFrame.rotate()方法旋转图像 - 支持 0°、90°、180°、270° 旋转
- 旋转操作会修改原始图像数据
权限问题
Q: 文件访问权限问题?
A: 需要添加权限:
xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />Q: 相机权限问题?
A: 需要添加权限:
xml
<uses-permission android:name="android.permission.CAMERA" />调试问题
Q: 如何开启调试日志?
A: 在创建引擎前配置:
java
BeautyEffectEngine.LogConfig logConfig = new BeautyEffectEngine.LogConfig();
logConfig.consoleEnabled = true;
logConfig.fileEnabled = true;
logConfig.level = BeautyEffectEngine.LogLevel.DEBUG;
BeautyEffectEngine.setLogConfig(logConfig);Q: 如何获取详细错误信息?
A: 方法:
- 开启 DEBUG 级别日志
- 检查 API 返回值(0 表示成功)
- 查看文件日志输出
- 使用 Android Studio 的 Logcat 查看日志
版本兼容性
Q: 支持哪些 Android 版本?
A: 支持 Android 5.0 (API 21) 及以上版本
Q: 支持哪些设备架构?
A: 支持:
- arm64-v8a(64位 ARM)
- armeabi-v7a(32位 ARM)
Q: 如何升级 SDK 版本?
A: 步骤:
- 下载新版本 SDK
- 替换旧的 AAR 文件
- 清理项目缓存
- 重新构建项目
- 测试功能是否正常