Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 安卓C++;NDK_C++_Android_Android Ndk - Fatal编程技术网

C++ 安卓C++;NDK

C++ 安卓C++;NDK,c++,android,android-ndk,C++,Android,Android Ndk,我试图为android ndk编译以下内容 #include <jni.h> #include <string.h> extern "C" { JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_testFunction(JNIEnv * env, jobject obj); }; JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_te

我试图为android ndk编译以下内容

#include <jni.h>
#include <string.h>

extern "C" {
    JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_testFunction(JNIEnv * env, jobject obj);
};

JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_testFunction(JNIEnv *env, jobject obj) {
 return env->NewStringUTF(env, "Hello from native code!");
}
#包括
#包括
外部“C”{
JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_testFunction(JNIEnv*env,jobject obj);
};
JNIEXPORT jstring JNICALL Java_com_knucklegames_helloCpp_testFunction(JNIEnv*env,jobject obj){
返回env->NewStringUTF(env,“来自本机代码的你好!”);
}
但它给出了以下错误

Compile++ thumb: helloCpp <= /cygdrive/c/workspace/helloCpp/jni/main.cpp
/cygdrive/c/workspace/helloCpp/jni/main.cpp: In function '_jstring* Java_com_knucklegames_hello
Cpp_testFunction(JNIEnv*, _jobject*)':
/cygdrive/c/workspace/helloCpp/jni/main.cpp:10: error: no matching function for call to '_JNIEn
v::NewStringUTF(JNIEnv*&, const char [24])'
/cygdrive/d/android/android-ndk-r4b/build/platforms/android-8/arch-arm/usr/include/jni.h:839: note: candidates
 are: _jstring* _JNIEnv::NewStringUTF(const char*)
make: *** [/cygdrive/c/workspace/helloCpp/obj/local/armeabi/objs/helloCpp/main.o] Error 1

Compile++thumb:helloCppNewStringUTF函数只接受一个参数,一个c字符串:

env->NewStringUTF("Hello from native code!");
有一个C版本是这样的:

NewStringUTF(env, "Hello from native code!");

但是你显然是在使用C++版本。

谢谢,这解决了错误,但现在在尝试加载LabBar时强制关闭。它位于lib文件夹中,名为libhelloCpp.so,静态{System.loadLibrary(“helloCpp”);}是问题所在。如果你还有其他问题,你应该发表另一篇文章。更多的人可能会这样看。确保.so在libs/armeabi下;当APK安装到设备上时,您应该在/data/data/com.knucklegames.helloCpp/lib/libhelloCpp.so+1下看到它,谢谢分享;从我能在网上找到的文件来看,这是不清楚的。