cocosCrator 打包报错: app:mergeReleaseJniLibFolders

cocosCrator 打包报错: app:mergeReleaseJniLibFolders,第1张

昨天打包一个项目出现以下报错,记录一下解决过程。

  • What went wrong:
    Execution failed for task ‘:、app:mergeReleaseJniLibFolders’.
    java.lang.NullPointerException (no error message)
mergeReleaseJniLibFolders

这是gradle合并jniLibs文件夹的任务,通过gradlew assembleRelease命令执行。

事发

本来是一个正常打包的项目,由于要接入广告SDK,于是按照经验在build路径中加libs文件夹,然后添加广告相关的各种权限。打包,没什么问题,测试。

广告加载失败!!!

排查

经过检查发现,libs文件夹放错位置!

错误的路径:build\jsb-link\frameworks\runtime-src\proj.android-studio\libs

正确的路径:build\jsb-link\frameworks\runtime-src\proj.android-studio\app\libs

直接将libs剪切到app内,重新打包。

bug初现

打包并未成功,报错:mergeReleaseJniLibFolders !

查了网上各种解决方案,有人说是gradle版本号的问题。换!依然不行,甚至换过androidSDK、NDK 。

分析

仔细读了编译报错日志,发现mergeReleaseJniLibFolders 任务的输出:

Task :app:mergeReleaseJniLibFolders FAILED
Task ‘:app:mergeReleaseJniLibFolders’ is not up-to-date because:
Input property ‘sourceFolderInputs’ file D:\work\cocos\project\app\build\jsb-link\frameworks\runtime-src\proj.android-studio\libs\GDTSDK.unionNormal.4.450.1320.aar has been removed.
Input property ‘sourceFolderInputs’ file D:\work\cocos\project\app\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\libs\anythink_banner.aar has changed.
Input property ‘sourceFolderInputs’ file D:\work\cocos\project\app\build\jsb-link\frameworks\runtime-src\proj.android-studio\app\libs\anythink_china_core.aar has changed.
:TowerDefenseBig:mergeReleaseJniLibFolders (Thread[Task worker for ‘:’ Thread 2,5,main]) completed. Took 0.054 secs.

大概意思就是,原来错误路径中的libs文件的GDTSDK和广告的aar包已经被移除或修改,难道系统第一次编译的时候已经将错误的路径写入了某个配置文件,下次编译时按这个配置中的路径找arr包?好吧,看起来是这样的。

解决

既然猜到了问题所在,就不难解决。简单粗暴的方式:

删掉当前的build,重新构建。正确添加libs文件夹和添加广告相关权限,编译。

成功!!!

总结

遇到问题还是不要着急去网上翻答案,得先自己分析!

感谢浏览!

如果你有兴趣请支持一波我们的游戏:

xc_1

塔防海岸线 下载路线1

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/719317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存