externalNativeBuild我这里一直报错,Could not find method externalNativeBuild()
classpath 'com.android.tools.build:gradle:3.1.4’这个已经设置到最新的3.1.4了
apply plugin: ‘com.android.application’
android {
compileSdkVersion 22
buildToolsVersion ‘27.0.3’
defaultConfig {
applicationId "com.test.fff"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
externalNativeBuild {
ndkBuild {
arguments 'NDK_MODULE_PATH=../../..:../../../cocos2d-x/cocos:../../../../cocos2d-x/external:../../../../cocos2d-x/cocos/scripting'
arguments '-j' + Runtime.runtime.availableProcessors()
arguments '-c'
abiFilters 'armeabi-v7a'
path
}
}
ndk {
moduleName "libcocos2dx"
abiFilters "armeabi-v7a"
}
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
}
signingConfigs {
release {
if (project.hasProperty("RELEASE_STORE_FILE")) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
}
}
}
}
externalNativeBuild{
ndkBuild{
path “jni/Android.mk”
}
}
dependencies {
implementation fileTree(dir: ‘libs’, include: [’*.jar’])
implementation project(’:libcocos2dx’)
}
repositories {
flatDir {
dirs ‘libs’
}
}
build.gradle里面是这么设置的
externalNativeBuild {
ndkBuild {
cFlags '-std=c++11 -fexceptions -fpermissive'
arguments 'NDK_MODULE_PATH=../../..:../../../cocos2d-x:../../../cocos2d-x/cocos:../../../cocos2d-x/external:../../../cocos2d-x/extensions:../../../cocos2d-x/cocos/scripting'
arguments '-j' + Runtime.runtime.availableProcessors()
abiFilters 'armeabi-v7a'
}
}
ndk {
moduleName "libcocos2dx"
abiFilters "armeabi-v7a"
}
改成这样以后终于开始编译了,但是居然没有ndk编译的日志,就在后台一直编译……完全看不到什么情况了……
externalNativeBuild{
ndkBuild{
path "../Android.mk" //对应路径
}
}
在自己的工程的app下的build.gradle中,buildTypes中加入上面的内容
libcocos2dx的build.gradle中,buildTypes也加入对应内容
终于编译过了
minSdkVersion 14
你的工程不是用 3.17 创建的,可以用 3.17 新建一个,仿照着新工程的 gradle 配置改。3.17 之前是 proj.android-studio 文件夹,3.17 新建的工程是 proj.android (只有这一个)
好的,编译过了
这个android studio能不能显示编译log呢,感觉一直在后台编译,但是看不到具体情况
展开 gradle 面板,点击具体的构建 task
我的报如下错误:
Successfully started process ‘command ‘D:\work\dev_env\android-ndk-r16b\ndk-build.cmd’’
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_audioengine_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= CCComponentLua.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_3d_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_cocosdenshion_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_cocosbuilder_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_csloader_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_studio_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua-cocos-studio-conversions.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_spine_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_video_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_ui_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_webview_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_extension_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_physics3d_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_navmesh_auto.cpp
In file included from
D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/scripting/lua-bindings/proj.android/…/auto/lua_cocos2dx_physics3d_auto.cp
p
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/3d/…\physics3d/CCPhysics3D.h:55:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/scripting/lua-bindings/proj.android/…/…/…/…/exte
rnal/bullet/prebuilt/android/…/…/include\bullet/btBulletCollisionCommon.h:35:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet/BulletCollision/Co
llisionShapes/btBvhTriangleMeshShape.h:22:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet/BulletCollision/Co
llisionShapes/btTriangleInfoMap.h:20:
D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet\LinearMath/btHashMap.h
:20 fatal error: ‘btAlignedObjectArray.h’ file not found
#include “btAlignedObjectArray.h”
^~~~~~~~~~~~~~~~~~~~~~~~
1
error generated.
make: *** [D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/cocos2d_lua_static/__/auto/lua_
cocos2dx_physics3d_auto.o] Error 1
make: *** Waiting for unfinished jobs…
:MyLuaGame:externalNativeBuildRelease (Thread[Task worker for ‘:’ Thread 2,5,main]) completed. Took 17.046 secs.
FAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ‘:MyLuaGame:externalNativeBuildRelease’.
Build command failed.
Error while executing process D:\work\dev_env\android-ndk-r16b\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\work\code\upgraded_proj\test\MyLuaGame\frameworks\r
untime-src\proj.android\app\jni\Android.mk NDK_APPLICATION_MK=D:\work\code\upgraded_proj\test\MyLuaGame\frameworks\runtime-src\proj.android\app\jni\Application.mk APP_ABI=armeabi-v7a NDK_A
LL_ABIS=armeabi-v7a NDK_DEBUG=0 APP_PLATFORM=android-14 NDK_OUT=D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/build/intermediates/ndkBuild/release/obj N
DK_LIBS_OUT=D:\work\code\upgraded_proj\test\MyLuaGame\frameworks\runtime-src\proj.android\app\build\intermediates\ndkBuild\release\lib NDK_TOOLCHAIN_VERSION=clang -j4 NDK_DEBUG=0 D:/work/c
ode/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libcocos2dlua.so}
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_audioengine_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= CCComponentLua.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_3d_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_cocosdenshion_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_cocosbuilder_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_csloader_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_studio_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua-cocos-studio-conversions.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_spine_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_video_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_ui_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_experimental_webview_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_extension_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_physics3d_auto.cpp
[armeabi-v7a] Compile++ arm : cocos2d_lua_static <= lua_cocos2dx_navmesh_auto.cpp
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/scripting/lua-bindings/proj.android/…/auto/lua_co
cos2dx_physics3d_auto.cpp
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/3d/…\physics3d/CCPhysics3D.h:55:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/scripting/lua-bindings/proj.android/…/…/…/…/ex
ternal/bullet/prebuilt/android/…/…/include\bullet/btBulletCollisionCommon.h:35:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet/BulletCollision/
CollisionShapes/btBvhTriangleMeshShape.h:22:
In file included from D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet/BulletCollision/
CollisionShapes/btTriangleInfoMap.h:20:
D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/jni/…/…/…/…/cocos2d-x/cocos/…/external/bullet/include/bullet\LinearMath/btHashMap.h:20 fatal er
ror: ‘btAlignedObjectArray.h’ file not found
#include “btAlignedObjectArray.h”
^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [D:/work/code/upgraded_proj/test/MyLuaGame/frameworks/runtime-src/proj.android/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/cocos2d_lua_static/__/auto/lu
a_cocos2dx_physics3d_auto.o] Error 1
make: *** Waiting for unfinished jobs…
-
Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. -
Get more help at https://help.gradle.org
BUILD FAILED in 1m 52s
51 actionable tasks: 51 executed
执行命令出错,返回值:1。
D:\work\code\upgraded_proj\test\MyLuaGame>
你们官方的test的编译不成功,真心不知道怎么会是
难道就我一个人有问题吗?我擦
这个事情,总是有一些可以变通的方法,比如:
- 将项目放到磁盘根目录
- 自定义 gradle 配置,指定一个构建的临时目录
具体参考:
1:方案可行,证明确实是路径问题 2:方案还是没解决路径过长问题,编译的时候还是从项目真实目录去找,怀疑这个buildDir是不是只能对java层起作用?
你好,我这边刚下3.17,同样遇到这个问题,请问你是怎么解决的?
Build command failed.
Error while executing process D:\android\android-sdk-windows\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\cocos2dx\cocos2d-x-3.17\tests\cpp-tests\proj.android\app\jni\Android.mk NDK_APPLICATION_MK=D:\cocos2dx\cocos2d-x-3.17\tests\cpp-tests\proj.android\app\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-14 NDK_OUT=D:/cocos2dx/cocos2d-x-3.17/tests/cpp-tests/proj.android/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=D:\cocos2dx\cocos2d-x-3.17\tests\cpp-tests\proj.android\app\build\intermediates\ndkBuild\debug\lib NDK_TOOLCHAIN_VERSION=clang -j4 NDK_DEBUG=1 D:/cocos2dx/cocos2d-x-3.17/tests/cpp-tests/proj.android/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libcpp_tests.so}
[armeabi-v7a] Compile++ arm : cpp_tests_shared <= main.cpp
[armeabi-v7a] Compile++ arm : cpp_tests_shared <= ActionManagerTest.cpp
[armeabi-v7a] Compile++ arm : cpp_tests_shared <= ActionsEaseTest.cpp
[armeabi-v7a] Compile++ arm : cpp_tests_shared <= ActionsProgressTest.cpp
In file included from D:/cocos2dx/cocos2d-x-3.17/tests/cpp-tests/proj.android/app/jni/main.cpp:25:
In file included from D:/android/android-sdk-windows/ndk-bundle/build//…/sources/cxx-stl/llvm-libc++/include\memory:642:
In file included from D:/android/android-sdk-windows/ndk-bundle/build//…/sources/cxx-stl/llvm-libc++/include__config:169:
D:/android/android-sdk-windows/ndk-bundle/build//…/sysroot/usr/include\features.h:1:1: error: unknown type name ‘b’
b<U+0014>#e<94><U+0000>l<U+0001><U+0000><U+0000><U+0000><U+0001>E-SafeNet<U+0000><U+0000><U+0000>LOCK<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>~<U+0011><U+00F1>rX<U+0011><9F>"<U+0659>B
^
D:/android/android-sdk-windows/ndk-bundle/build//…/sysroot/usr/include\features.h:1 error: expected unqualified-id
b<U+0014>#e<94><U+0000>l<U+0001><U+0000><U+0000><U+0000><U+0001>E-SafeNet<U+0000><U+0000><U+0000>LOCK<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000>~<U+0011><U+00F1>rX<U+0011><9F>"<U+0659>B
^
D:/android/android-sdk-windows/ndk-bundle/build//…/sysroot/usr/include\features.h:1 error: source file is not valid UTF-8
报这种错误怎么解决啊
你用的是android studio的ndk 环境,把他设置为你自己 ndk 版本路径就好了 在android studio 工程目录下有一个 local.properties文件 修改ndk变量就好了
大佬,这个问题最后你是怎么解决的?
这个应该是gradle过高的问题,跟ndk没关系,降到3.5以下看看