Android error--No implementation found for native Lcomd

来源:互联网 发布:gdi 高级编程 编辑:程序博客网 时间:2024/06/15 16:48

       在利用NDK编译Cpp运行时,出现了No implementation found for native Lcom等错误,调试好久,才发现

XXX.h和XXX.cpp,在XXX.cpp里#include XXX.h,居然出现了No implementation found for native Lcom。

然后,XXX.h删除,全部在XXX.cpp里实现,竟然通过了。

       NDK是不能直接include 编译(javah)出来的XXX.h。如果真要包含至少要删减一些语句。当然,可以include 其他.h文件。

/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_ndk_test_JniClient *///#ifndef _Included_com_ndk_test_JniClient//#define _Included_com_ndk_test_JniClient#ifdef __cplusplusextern "C" {#endif/* * Class:     com_ndk_test_JniClient * Method:    AddStr * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_ndk_test_JniClient_AddStr  (JNIEnv *, jclass, jstring, jstring);/* * Class:     com_ndk_test_JniClient * Method:    AddInt * Signature: (II)I */JNIEXPORT jint JNICALL Java_com_ndk_test_JniClient_AddInt  (JNIEnv *, jclass, jint, jint);#ifdef __cplusplus}#endif//#endif


#include "com_ndk_test_JniClient.h"#include <stdlib.h>#include <stdio.h>#ifdef __cplusplus   extern "C"  {   #endif  /* * Class:     com_ndk_test_JniClient * Method:    AddStr * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_ndk_test_JniClient_AddStr  (JNIEnv *env, jclass arg, jstring instringA, jstring instringB){    jstring str = (*env)->NewStringUTF(env, "HelloWorld from JNI !");    return str;       }/** Class:     com_ndk_test_JniClient* Method:    AddInt* Signature: (II)I*/JNIEXPORT jint JNICALL Java_com_ndk_test_JniClient_AddInt  (JNIEnv *env, jclass arg, jint a, jint b){    return a + b;}#ifdef __cplusplus   }   #endif



0 0
原创粉丝点击