1. Android release 包报错找不到某些方法,如何解决?
如果您在打 release 包时,启用了编译优化(把 minifyEnabled 设置为 true),会裁掉一些未在 java 层调用的代码,而这些代码有可能会被 native 层调用,从而引起 no xxx method
的异常。
如果您启用了这样的编译优化,那就要添加这些 keep 规则,防止 xmagic 的代码被裁掉:
-keep class com.tencent.xmagic.** { *;}
-keep class org.light.** { *;}
-keep class org.libpag.** { *;}
-keep class org.extra.** { *;}
-keep class com.gyailib.**{ *;}
-keep class com.tencent.cloud.iai.lib.** { *;}
-keep class com.tencent.beacon.** { *;}
-keep class com.tencent.qimei.** { *;}
-keep class androidx.exifinterface.** { *;}
2. Android SDK 集成到宿主工程报 gson 库冲突,如何解决?
在宿主工程 build.gradle
文件中添加如下代码:
Android{
configurations {
all*.exclude group: 'com.google.code.gson'
}
}
3. Android targetSdkVersion 为31或更高时,so 库没有加载成功?或者无法使用 GAN 类型特效(例如童话脸、童年泡泡糖等)?
Android targetSdkVersion 为31或更高版本时需要在 app 模块下找到 AndroidManifest.xml
文件,在 application 标签内加入如下标签:
<uses-native-library
android:name="libOpenCL.so"
android:required="false" />
//true 表示libOpenCL是当前app必需的。如果没有此库,系统将不允许app安装
//false 表示libOpenCL不是当前app必需的。无论有没有此库,都可以正常安装app。如果设备有此库,腾讯特效SDK里的GAN类型特效能正常生效(例如童话脸、国漫脸)。如果设备没有此库,GAN类型不会生效,但也不影响SDK内其他功能的使用。
//关于uses-native-library的说明,请参考Android 官网介绍:https://developer.android.com/guide/topics/manifest/uses-native-library-element
4. 使用美颜时传递的纹理是横向纹理,如何解决?
可以使用 demo 中工具类TextureConverter.java 的convert
方法对纹理进行旋转,转换为竖屏,然后再传递给美颜 SDK。
public int convert(int srcID, int width, int height, @RotationDegreesValue int rotation, boolean flipVertical, boolean flipHorizontal)
5. 使用美颜时传递的纹理是 oes 纹理,如何解决?
可以使用 demo 中工具类TextureConverter.java 的oes2Rgba
方法对纹理进行转换,转换为 RGBA 纹理,然后再传递给美颜 SDK。
public int oes2Rgba(int srcID, int width, int height)
6. 如果想使用别的版本的 pag 如何解决?V3.5.0及以上支持
客户集成美颜 SDK 时:
如果是通过 Maven 集成,通过 implementation TencentEffect 就能引入 pag。如果您不想用 TencentEffect 依赖的 pag,可以通过 exclude 排除,然后在自己 app 的 build.gradle 中引入您需要的 pag 版本:
implementation ('com.tencent.mediacloud:TencentEffect_S1-04:版本号'){
exclude group: "com.tencent.tav", module: "libpag"
}
如果是下载美颜 SDK 的 aar 手动集成,在项目中依赖 TencentEffect.aar,这个 aar 是不带 pag 的,您还需要在 app 的 build.gradle 加一句 implementation pag 引入 pag 才能用:
implementation 'com.tencent.tav:libpag:4.3.33-noffavc'
如果您想动态下载 pag 的 so,请从 pag 官网 找到您需要的版本,下载 aar,将 .aar 重命名为 .zip,解压,剔除其中的 so,再把剩余文件压缩为 .zip,然后重命名为 .aar,最后引入这个不包含 so 的 pag aar,pag 的 so 则联网动态下载。
本页内容是否解决了您的问题?