Skip to content

mergeReleaseNativeLibs

这个错误为最为常见的so文件异常错误,一般为多个插件同时包含了相同的so文件同时提交到云端打包出现的异常错误

异常示例

text
以下是HBuilderX云打包编译错误信息。请结合当前uni-app/uni-appx项目上下文分
析失败原因,指出最可能的问题代码或配置,并给出可执行的修复步骤。
Note:[PackagePath]/wgtRoot/__UNI__1840CDO/uni_modules/FaceAl-
Search/utssdk/app-android/src/FaceSearchActivity.java uses or overrides a
deprecated API.
Note: Recompile with -Xlint:deprecation for details.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeReleaseNativeLibs'.
> A failure occurred while executing
com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTas
kWorkAction
> 2 files found with path 'lib/arm64-v8a/libyuv.so' from inputs:
/srv/.gradle/caches/8.14.3/transforms/cc9177258e12fbd658b14d09781e3456/transf
ormed/jetified-media-livepusher-release/jni/arm64-v8a/libyuv.so
/srv/.gradle/caches/8.14.3/transforms/69a03a31bc7ffc6e10b12c39dfb2045d/transf
ormed/jetified-libuvccamera-release/jni/arm64-v8a/libyuv.so
If you are using jniLibs and CMake IMPORTED targets, see
https://developer.android.com/r/tools/jniLibs-vs-imported-targets

解决方法

找到错误的位置

如上面的示例错误位置为2 files found with path 'lib/arm64-v8a/libyuv.so' from inputs:,说明提交打包是同时提交了lib/arm64-v8a/libyuv.soso文件,只需要在manifest.json文件中配置packagingOptions即可

配置packagingOptions

打开项目的manifest.json文件,打开源码视图distribute > android节点下配置packagingOptions节点并配置pickFirst参数,如下方代码所示:

json
/* android打包配置 */
"android" : {
    "permissions" : [
        "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
        "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
        "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
        "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
        "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
        "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
        "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
        "<uses-permission android:name=\"android.permission.CAMERA\"/>",
        "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
        "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
        "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
        "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
        "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
        "<uses-feature android:name=\"android.hardware.camera\"/>",
        "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
        "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
        "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>"
    ],
    "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
    "packagingOptions" : [  
        "pickFirst 'lib/arm64-v8a/libyuv.so'",
        "pickFirst 'lib/armeabi-v7a/libyuv.so'"
    ]
}

建议

如果出现类似2 files found with path 'lib/arm64-v8a/libyuv.so'的错误建议将armeabi-v7a arm64-v8a x86一起配置,免得差一个没有配置提交打包后还是出现这种异常

配置完成后提交打包即可解决此问题

注意

如果打包完成后出现运行异常,此时只能通过找插件作者解决此问题