Execution failed for task ':sdk:mergeDebugNativeLibs'


Execution failed for task ':sdk:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction

2 files found with path 'lib/arm64-v8a/libaaa.so' from inputs:

 - /Volumes/hp-sxf/StudioProjects/face/sdk/build/intermediates/merged_jni_libs/debug/out/arm64-v8a/libaaa..so

 - /Volumes/hp-sxf/StudioProjects/face/sdk/build/intermediates/cxx/Debug/5h3r672g/obj/arm64-v8a/libaaa..so

If you are using jniLibs and CMake IMPORTED targets, see

https://developer.android.com/r/tools/jniLibs-vs-imported-targets

 

 

網上看了很多原因,也看了官方解釋,跟我的情況還不一樣,我的最后查到的原因是因為配置了gradle task,這個task 會在編譯期拷貝libaaa.so到cmake依賴的文件夾,但是換了一個gradle版本,這個就會報錯了,匪夷所思,把拷貝邏輯去掉就好了

 

很久之后,又遇到了同樣的問題,按官方解釋的把sourceSets去掉,也不行,最后試了下不去掉sourceSets,而是把里邊的dir置為空可以順利build通過,這種情況存在於創建在gradle4之前,又切換到gradle4.0之后。

sourceSets {
        main {
            // The libs directory contains prebuilt libraries that are used by the
            // app's library defined in CMakeLists.txt via an IMPORTED target.
            jniLibs.srcDirs = []
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM