工具android studio,只有cpp-test可以正常打包,js-test和lua-empty-test都出错,出错提示都一样的。
NDK_PROJECT_PATH=null
NDK_PROJECT_PATH=null 这提示很明显了啊, ndk 的path再设置设置啊,是android studio 没设置好,还是打包文件没设置好,找找吧
确实是NDK没设置好,谢谢楼上,不过又有新问题了,打包的时候LUA文件和JS文件打包不进去怎么办?
09-30 11:20:44.758 1150-1175/? D/cocos2d-x debug info: {
cocos2d.x.version: cocos2d-x-3.17
cocos2d.x.compiled_with_gl_state_cache: true
gl.supports_S3TC: false
cocos2d.x.build_type: DEBUG
gl.supports_vertex_array_object: true
cocos2d.x.compiled_with_profiler: false
gl.renderer: Adreno ™ 540
gl.vendor: Qualcomm
gl.version: OpenGL ES 3.1
gl.supports_ATITC: false
gl.supports_ETC1: true
gl.supports_OES_packed_depth_stencil: true
gl.max_texture_units: 16
gl.supports_PVRTC: false
gl.max_texture_size: 32768
gl.supports_NPOT: true
gl.supports_OES_map_buffer: false
gl.supports_OES_depth24: true
gl.supports_discard_framebuffer: false
gl.supports_BGRA8888: false
}
09-30 11:20:44.768 1150-1175/? D/EngineDataManager.cpp: setAnimationInterval by game: 0.0167
09-30 11:20:44.768 1150-1175/? D/EngineDataManager.cpp: JNI setAnimationInterval: 0.016667
09-30 11:20:44.768 273-285/? I/WindowManager: Screen frozen for +1s210ms due to Window{4a8bb12c u0 Starting org.cocos2dx.js_tests}
09-30 11:20:45.138 1150-1175/? D/cocos2d-x debug info: cocos2d: fullPathForFilename: No file found at script/jsb_prepare.js. Possible missing file.
09-30 11:20:45.138 1150-1175/? D/cocos2d-x debug info: cocos2d: fullPathForFilename: No file found at script/jsb_prepare.jsc. Possible missing file.
09-30 11:20:45.138 1150-1175/? D/cocos2d-x debug info: cocos2d: fullPathForFilename: No file found at script/jsb_prepare.js. Possible missing file.
09-30 11:20:45.138 1150-1175/? D/ScriptingCore.cpp: ScriptingCore:: compileScript fail:script/jsb_prepare.js
拆包看了看所有JS文件都没打包进去。
LUA也是一样的情况 所有LUA文件都没打包进去
做为一个新手,COCOS真的体验极差,什么不说好歹让我把DEMO运行起来吧。COCOSJS和COCOSLUA都运行不了。
打包过程用的 Android Studio 么?
如果你用的 cocos 命令行,请首先确认一下环境变量设置的是不是 3.17 包内的。
这些基础的功能,在版本发布前有验证过。
用的 Android studio,看了2天各种查资料终于定位到这里,相应的文件是复制过来的 intermediates/assets/debug/src里有齐全的LUA文件,但是不知道怎么打包到最终的APK文件里。我就想运行个DEMO罢了,不用连gradle也要精通吧,已经花了2天时间了,还是解决不了。麻烦看看。
variant.mergeAssets.doLast {
copy {
from “{buildDir}/../../../../../res"
into "{buildDir}/intermediates/assets/{variant.dirName}/res"
}
println "path="+"{buildDir}/intermediates/assets/{variant.dirName}/res"
copy {
from "{buildDir}/…/…/…/…/…/src”
into “{buildDir}/intermediates/assets/{variant.dirName}/src”
}
项目的编译过程是正常的,就是打包的时候少了个assets文件夹已经里面的LUA文件和res
这边验证了一下 lua-empty-test
的 debug 和 release 两种构建,资源都有打包进去。
不清楚你那边是什么状况。
Gradle 会执行很多 task,你要了解打包的细节,可以输出 Gradle 的日志信息。比如通过执行项目目录下的 gradlew
命令
./gradlew assembleDebug -PPROP_BUILD_TYPE=ndk-build --parallel --info
你好,确实并没有打入assets,执行了 ./gradlew assembleDebug -PPROP_BUILD_TYPE=ndk-build --parallel --info
Task mergeDebugAssets
file or directory ‘/Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/libs’, not found
Task ‘mergeDebugAssets’ is not up-to-date because:
Output property ‘incrementalFolder’ file /Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/build/intermediates/incremental/mergeDebugAssets has been removed.
Output property ‘incrementalFolder’ file /Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/build/intermediates/incremental/mergeDebugAssets/merger.xml has been removed.
Output property ‘outputDir’ file /Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/build/intermediates/merged_assets/debug/mergeDebugAssets/out has been removed.
All input files are considered out-of-date for incremental task ‘mergeDebugAssets’.
Unable do incremental execution: full task run
file or directory ‘/Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/libs’, not found
/Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/build/…/…/…/…/…/res
/Users/mars/Desktop/Test/frameworks/runtime-src/proj.android/app/build/intermediates/assets/debug/res
还有这些 Test:mergeDebugAssets 编译脚本是在哪个文件写的?
你是不是升级了 Gradle 到 4.6 & android plugin 3.2 ?这是 Gradle 自己的问题,你手动把 android plugin 从 3.2 调整到 3.1 就 OK 了。
参考1 PR 的讨论:
https://github.com/cocos2d/cocos2d-x/pull/19113#issuecomment-429795913
参考2
https://developer.android.com/studio/known-issues
variant-specific tasks are no longer created during the configuration sta…
assets 拷贝的逻辑在 build.gradle 中的 android.applicationVariants.all { }
代码块
这是个什么bug,我测试了一下,的确如此。我尝试用Android studio打包,把gradle改成3.2.1,就没有assets文件夹,改成3.1.0就有了。
这个BUG已经在GITHUB上报告过的,你试试最新的3.17.1吧,据说修改好了。
这个不是cocos的问题,是gradle升级变化的问题。
你要是熟悉gradle脚本,应该可以自己写钩子复制过去的。
我也是在这里折腾了很久很久很久。。。。
Android studio 3.5 打包也出现了这个问题,我真是日到狗了
@leda
感谢您的回复,发帖了好几天都没人回。
看了一下里面的修复,貌似主要是修改路径 等。 我打包的时候,出现了NDK_PROJECT_PATH=null 的问题,请问一下是由于 项目的路径 长度过长导致的问题么?
或者可以方便加下我的qq,详细向您请教一下?
这是我之前的发帖:
https://forum.cocos.com/t/cocos2d-x3-17-js-testdemo-as-ndk-project-path-null/82735
感谢您的回复,发帖了好几天都没人回。
看了一下里面的修复,貌似主要是修改路径 等。 我打包的时候,出现了NDK_PROJECT_PATH=null 的问题,请问一下是由于 项目的路径 长度过长导致的问题么?
或者可以方便加下我的qq,详细向您请教一下?
这是我之前的发帖:
https://forum.cocos.com/t/cocos2d-x3-17-js-testdemo-as-ndk-project-path-null/82735
修复路径,就解决了打包后 assets 目录为空的问题。NDK_PROJECT_PATH = null 可以忽略,不是问题。
No rule to make target
可能之前已经存在问题了,建议先点击 清除缓存并重启 Android Studio,然后再看日志报错。
另外先排除一下自己电脑上有多个 cocos 版本的问题 @513576674