12
Tôi cố gắng để biên dịch sau cho ndk androidAndroid C++ 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!");
}
nhưng nó là đưa ra các lỗi sau
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
Cảm ơn điều này đã giải quyết được lỗi, nhưng bây giờ nó buộc phải đóng khi cố gắng tải thư viện. Nó nằm trong thư mục lib dưới tên libhelloCpp.so và tĩnh {System.loadLibrary ("helloCpp"); } là vấn đề – Will03uk
Nếu bạn có câu hỏi khác, bạn nên tạo một bài đăng khác. Nhiều người có thể thấy nó theo cách đó. –
Hãy chắc chắn rằng .so là dưới libs/armeabi; khi APK được cài đặt vào thiết bị, bạn sẽ thấy APK đó trong /data/data/com.knucklegames.helloCpp/lib/libhelloCpp.so – I82Much