Skip to content

Android 常见问题

集成问题

Q: 引擎创建失败怎么办?

A: 检查以下几点:

  • 确认 appIdappKey 是否正确
  • 检查网络连接是否正常
  • 查看日志输出获取详细错误信息
  • 确认 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: 建议流程:

  1. 从相机获取 YUV 数据
  2. 使用 createWithAndroid420() 创建 ImageFrame
  3. 调用 processImage() 处理
  4. 转换为目标格式显示

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: 步骤:

  1. 下载新版本 SDK
  2. 替换旧的 AAR 文件
  3. 清理项目缓存
  4. 重新构建项目
  5. 测试功能是否正常