求助cocos2dx 3.17 使用 ndk16b 编译不过

尝试了很多方法,一直编译报错
使用cocos compile 编译
/Users/zhaoliu/Workspace/android-ndk-r16b/sysroot/usr/include/signal.h:96:18: error: expected ‘;’ at end of
declaration list
sighandler_t sa_handler;

/Users/zhaoliu/Workspace/android-ndk-r16b/sysroot/usr/include/signal.h:97:12: error: duplicate member ‘_u’
void (sa_sigaction)(int, struct siginfo, void*);

使用之前的build_native的批处理也报错
/Users/zhaoliu/Workspace/Cocos/test/frameworks/runtime-src/proj.android/…/…/cocos2d-x/external/websockets/prebuilt/android/armeabi-v7a/libwebsockets.a(context.c.o):context.c:function libwebsocket_create_context: error: undefined reference to ‘getdtablesize’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

求大神指教啊,另外求android studio 内部编译c++的配置方法

用 android studio 直接导入 proj.android 文件夹,Gradle 同步好后,直接编译,会将 C++ 的代码一起编译的。

编译 C++ 的步骤是 externalNativeBuild,配置在 build.gradle 中

是导入proj.android-studio文件夹吧!!?

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也加入对应内容
终于编译过了

1赞
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:3:
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:10: 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:3:
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:10: 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>

路径太深,参考:

http://forum.cocos.com/t/3-17-lua/60857

这个我试了,但是还是不行啊

你们官方的test的编译不成功,真心不知道怎么会是

难道就我一个人有问题吗?我擦

这个事情,总是有一些可以变通的方法,比如:

  1. 将项目放到磁盘根目录
  2. 自定义 gradle 配置,指定一个构建的临时目录

具体参考:

https://stackoverflow.com/questions/33905687/error-file-path-too-long-on-windows-keep-below-240-characters

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:2: 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:5: error: source file is not valid UTF-8

报这种错误怎么解决啊

链接: https://pan.baidu.com/s/19s4fS1kR5nyT9P1osB0R0g 提取码: vnc8 下载安装一下这个就可以了