Android(安卓)error--No implementation found for native Lcomd
16lz
2021-01-26
在利用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 /* 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 #include #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
更多相关文章
- android sqlite中字符串含有单引号的处理
- MacPro 10.13.6 编译 android-8.1.0_r53
- android studio 3.3.2 NDK编译C++(C) JNI调用
- as中Settings.gradle的配置
- 解决办法:error: inner element must either be a resource refer
- 通过signapk.jar 为Android(安卓)应用程序签名,并优化签名后的APK
- android系统 在jack-server下 生成 jar 用于android app工程
- Android(安卓)开发 ------------- Unable to resolve target 'an