Получение 'LOGE' не было объявлено в этой ошибке области в NDK - PullRequest
2 голосов
/ 27 июля 2011

Я получаю эти ошибки, когда пытаюсь скомпилировать мой пример нативного (cpp) кода на моей машине. Я пытаюсь скомпилировать нативный код с помощью NDK из cygwin.

Я получаю ошибки ниже, я пытался добавить LDFLAGS, но все еще получаю ту же ошибку LOCAL_LDLIBS: = -llog

sh-4.1$ /cygdrive/c/Android/android-ndk-r6/ndk-build  
Compile++ thumb  : JNIExampleInterface <= JNIExampleInterface.cpp  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:5:44: error: android_runtime/AndroidRuntime.h: No such file or directory  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function 'void callback_handler(char*)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:36: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:51: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:59: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function 'void Java_com_nativeexample_JNIExampleInteace_callVoid(JNIEnv*, _jclass*)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:88: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function '_jobject* Java_com_nativeexample_JNIExamplnterface_getNewData(JNIEnv*, _jclass*, jint, _jstring*)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:103: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:110: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:117: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function '_jstring* Java_com_nativeexample_JNIExamplnterface_getStringInData(JNIEnv*, _jclass*, _jobject*)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:135: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:142: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function 'void initClassHelper(JNIEnv*, const char*,jobject**)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:163: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:170: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:177: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp: In function 'jint JNI_OnLoad(JavaVM*, void*)':  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:193: error: 'LOGI' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:195: error: 'LOGE' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:221: error: 'android' has not been declared  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:222: error: 'NELEM' was not declared in this scope  
D:/EclipseWorkspace/NativeExample/jni/JNIExampleInterface.cpp:223: error: 'LOGE' was not declared in this scope  
make: *** [/cygdrive/d/EclipseWorkspace/NativeExample/obj/local/armeabi/objs/JNIExampleInterface/JNIExampleInterface.o  
Error 1  
sh-4.1$   

Я следую примеру в сети
http://android.wooyd.org/JNIExample/

Если я что-то не так, поправьте меня. Если мой вопрос не идеален или непонятен, пожалуйста, оставьте комментарий и дайте мне возможность исправить то же самое.

Спасибо и всего наилучшего,
SSuman185

Ответы [ 2 ]

2 голосов
/ 01 августа 2011

Я могу разрешить только ошибку LOGE, используя следующие объявления:

#define  LOG_TAG    "libJNIExInterface"  
#define  LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)  
#define  LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)

Двойной знак ниже присутствует перед "android_log .....".

Другая ошибка - «NELEM», выполняющая регистрацию нативных функций во время выполнения Android, не требуется, но может быть сделана, только если у вас есть весь исходный код Android, когда вы компилируете это приложение вместе с исходным кодом Android код, иначе это невозможно).

Таким образом, регистрация во время выполнения Android невозможна, если у вас нет полного исходного кода Android, в любом случае мое приложение работает без этого.

1 голос
/ 24 апреля 2014

В случае, если у кого-то еще есть эта проблема:

Макросы журналирования были переименованы, и теперь ALOGE.

...