3.4.2发布安卓,Android studio警告CMake版本过低,该怎么升级或者更换CMake版本


接入的第三方SDK有gradle版本限制要求,不包括默认的4.1.0。
更改gradle版本号和version后就是上面截图中的错误,不知道怎么升级或者替换高版本的CMake。
即便是导出后不做修改,run的时候会出现下面的报错
只想问问大家该怎么解决第一个CMake的问题。


这边是不是没有下载高的,只有一个 3.6的

3.10和3.18都下载了,即便删除了3.6也会在build时下载回来


https://developer.android.com/studio/projects/install-ndk#vanilla_cmake
build.gradle 里指定下 cmake 版本试试


安卓文档中使用SDK管理器下载和单独下载的方法都试过了,ε=(´ο`*)))唉

测试都没看到这个提示, :flushed:

我电脑上的JDK是1.8版本的, 在这之前CMake没有动过(毕竟2.4的手册,原生开发环境一篇中也没有提到过)。是这次遇到了3.X引擎制作的游戏才知道CMake的存在。
项目目录\native\engine\android中的CMakeLists.txt文件的第一行不是没有试着改过,没有效果

gradle 和 plugin 的版本要对上,然后试试把 android studio 升级下
https://developer.android.com/studio/releases/gradle-plugin?gclid=EAIaIQobChMI2f-52uKc-AIVCFRgCh0r6gyqEAAYASAAEgIS9_D_BwE&gclsrc=aw.ds#updating-gradle

AS已经升级过了,现在使用的是21.2.1(Chipmunk)版。gradle用的是的5.1.1版本和3.4.3插件。

删除build目录,重新构建下试试

我是直接删了整个工程重新导出再构建的,有先Clean过

上面的 cmake 版本贴错了,要放在 path “…/CMakeLists.txt” 这句下面

是具体修改在哪一份build.gradle文件中,还是完全自己写一份CMakeLists.txt

我在“项目目录\native\engine\android\app”文件夹下的build.gradle文件中找到了相似的代码块,在下面加了一句version “xxx”之后,项目同步成功没有再报错了。但是填入的版本如果高于某个版本就会报错 无效。
接下来我尝试了一遍Run,


Caused by: org.gradle.api.UncheckedIOException: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 56 column 68 path $.libraries.cocos-Debug-arm64-v8a.output

版本号对应这里面的
image

第一遍为了少敲几个数字,填的3.18.1。报错 无效。

我这边的需求限制了gradle版本,常用的是5.1.1版本和3.4.3的插件。新出现的问题是不是和gradle有关

我这边就是用5.1.1版本和3.4.3的插件测试的

那我上面的错 org.gradle.api.UncheckedIOException: com.google.gson.stream.MalformedJsonException

不会真是某个json数据格式出错吧 :flushed:

在 项目目录\native\engine\android\app\build.gradle 文件中合适的位置加了 version “xxx” 调整了CMake版本。
使用的ndk版本是21.0.6113669,gradle5.1.1版本和3.4.3插件。


在gradle.properties文件中做了红框中的改动。
做完上面的操作后,cocos3.4.2引擎制作的游戏成功以debug包形式运行了。
然后我将游戏导出release包遇到了下面的错误:
说真的,遇到错不害怕,但是首次构建需要花上一个多小时是真的难受

Build command failed.
Error while executing process D:\Android\sdk\cmake\3.10.2.4988404\bin\cmake.exe with arguments {–build F:\cocosApp\NOAD\hzzjc\proj\build\cmake\release\armeabi-v7a --target cocos}
[1/1] Linking CXX shared library F:\cocosApp\NOAD\hzzjc\proj\build\hzzjc\intermediates\cmake\release\obj\armeabi-v7a\libcocos.so
FAILED: F:/cocosApp/NOAD/hzzjc/proj/build/hzzjc/intermediates/cmake/release/obj/armeabi-v7a/libcocos.so
cmd.exe /C “cd . && D:\Android\sdk\ndk\21.0.6113669\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi19 --gcc-toolchain=D:/Android/sdk/ndk/21.0.6113669/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=D:/Android/sdk/ndk/21.0.6113669/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -frtti -fexceptions -fsigned-char -Oz -DNDEBUG -Wl,–exclude-libs,libgcc_real.a -Wl,–exclude-libs,libatomic.a -static-libstdc++ -Wl,–build-id -Wl,–fatal-warnings -Wl,–exclude-libs,libunwind.a -Wl,–no-undefined -Qunused-arguments -shared -Wl,-soname,libcocos.so -o F:\cocosApp\NOAD\hzzjc\proj\build\hzzjc\intermediates\cmake\release\obj\armeabi-v7a\libcocos.so @CMakeFiles/cocos.rsp && cd .”
D:/CocosDashboard/resources/.editors/Creator/3.4.2/resources/resources/3d/engine-native/external/cmake/…/android/armeabi-v7a/libtbb_static.a(arena.cpp.o):function tbb::internal::cpu_ctl_env::get_env(): error: undefined reference to ‘fegetenv’
D:/CocosDashboard/resources/.editors/Creator/3.4.2/resources/resources/3d/engine-native/external/cmake/…/android/armeabi-v7a/libtbb_static.a(arena.cpp.o):function tbb::internal::cpu_ctl_env::set_env() const: error: undefined reference to ‘fesetenv’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.