昨天打包一个项目出现以下报错,记录一下解决过程。
mergeReleaseJniLibFolders
- What went wrong:
Execution failed for task ‘:、app:mergeReleaseJniLibFolders’.
java.lang.NullPointerException (no error message)
这是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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)