Android Studio NativeActivity - неопределенная ссылка на «Input Queue hasEvents» - PullRequest
0 голосов
/ 27 августа 2018

У меня есть собственный проект студии Android с нативной активностью, я хочу обработать ввод от пользователя, поэтому я использую следующее:

#include <android/input.h>
#include <android_native_app_glue.h>
#include <android/log.h>
#include "Game/Game.h"

#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "native- 
activity", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "native- activity", __VA_ARGS__))

void AInputQueueCreated(ANativeActivity* activity,AInputQueue* queue){
    LOGW("InputQueue created: %p\n", queue);
    AInputEvent* event = NULL;
    while (AInputQueue_getEvent(queue, &event) >= 0) {
        //LOGW("New input event: type=%d\n", AInputEvent_getType(event));
    }
}
__attribute__((visibility("default")))
void ANativeActivity_onCreate(ANativeActivity* activity,void* savedState, 
size_t savedStateSize) {
    LOGW("Creating: %p\n", activity);
    activity->callbacks->onInputQueueCreated=AInputQueueCreated;
}

когда я запускаю это, я получаю undefined reference to 'AInputQueue_hasEvents', если я удаляю AInputQueue_getEvent, он работает без проблем.

это CMakelists:

cmake_minimum_required(VERSION 3.4.1)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
                ${ANDROID_NDK}/sources/android/native_app_glue/
                src/main/jniLibs)

add_library( app-glue STATIC  
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )
add_library( cubat SHARED src/main/cpp/main.cpp )

find_library(log-lib log )

target_link_libraries( cubat app-glue ${log-lib} )

1 Ответ

0 голосов
/ 28 августа 2018

Я добавил android в части ссылки файла CMakeLists.txt, все заработало

target_link_libraries( cubat app-glue ${log-lib} android)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...