【问题标题】:Cocos2d-x HockeyApp integrationCocos2d-x HockeyApp 集成
【发布时间】:2016-04-04 15:11:21
【问题描述】:

我尝试使用以下链接将 HockeyApp 集成到我的 cocos2d-x 项目中:- http://support.hockeyapp.net/kb/client-integration-android/hockeyapp-for-android-ndk-early-access

但是当我尝试运行 ndk-build 命令时出现以下错误

jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:47:7: error: expected nested-name-specifier before 'AndroidLogBufferWriteFunc'
 using AndroidLogBufferWriteFunc = int (*)(int bufID, int prio, const char *tag,
       ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:47:7: error: 'AndroidLogBufferWriteFunc' has not been declared
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:47:33: error: expected ';' before '=' token
 using AndroidLogBufferWriteFunc = int (*)(int bufID, int prio, const char *tag,
                                 ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:47:33: error: expected unqualified-id before '=' token
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:53:1: error: 'AndroidLogBufferWriteFunc' does not name a type
 AndroidLogBufferWriteFunc g_android_log_buf_write = nullptr;
 ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc: In function 'void logger::initializeCrashLogWriter()':
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:60:3: error: 'g_android_log_buf_write' was not declared in this scope
   g_android_log_buf_write = reinterpret_cast<AndroidLogBufferWriteFunc>(
   ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:60:46: error: expected type-specifier before 'AndroidLogBufferWriteFunc'
   g_android_log_buf_write = reinterpret_cast<AndroidLogBufferWriteFunc>(
                                              ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:60:46: error: expected '>' before 'AndroidLogBufferWriteFunc'
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:60:46: error: expected '(' before 'AndroidLogBufferWriteFunc'
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:60:46: error: 'AndroidLogBufferWriteFunc' was not declared in this scope
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:61:54: error: expected ')' before ';' token
       dlsym(RTLD_DEFAULT, "__android_log_buf_write"));
                                                      ^
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc: In function 'int logger::writeToCrashLog(const char*)':
jni/../../breakpad/android/google_breakpad/../../src/client/linux/log/log.cc:68:7: error: 'g_android_log_buf_write' was not declared in this scope
   if (g_android_log_buf_write) {
       ^
make: *** [obj/local/armeabi/objs/breakpad_client/src/client/linux/log/log.o] Error 1

【问题讨论】:

  • 能否告诉我您在哪个平台上调用了 ndk-build?你用的是哪个编译器?我仍在尝试重现您的问题,我会尽快回复您。同时,也许您可​​以尝试在 ndk 上启用 c++11 支持,通过在 Application.mk 文件中添加“APP_CPPFLAGS += -std=c++11”来编译您的应用程序。

标签: cocos2d-x-3.x


【解决方案1】:

GCC 4.6.3 不支持 C++11 类型别名:

Breakpad\src\client\linux\log\log.cc

替换

using AndroidLogBufferWriteFunc = int (*)(int bufID, int prio, const char *tag,const char *text);

typedef int (*AndroidLogBufferWriteFunc)(int bufID, int prio, const char *tag,const char *text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多