功能,我只是一個NDK教程中,我發現瞎搞。本機代碼使用一個「包」,而活動在另一箇中。發生這種不匹配時,我不能調用本地函數而不會得到不滿意的鏈接異常。我知道「爲什麼」我只是不知道決議。的Android - JNI調用本地從不同的包
下面是示例代碼名爲.c,我已經放在我的JNI文件夾:
#include <string.h>
#include <jni.h>
jstring Java_com_mindtherobot_samples_ndkfoo_NdkFooActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis) {
return (*env)->NewStringUTF(env, "Hello from native code!");
}
注意,這.C代碼的包轉換爲com.mindtherobot.samples.ndkfoo.NdkFooActivity
。
如果我創建相匹配的包/類的新活動,我可以調用invokeNativeFunction
就好了。但是,如果我不能匹配它呢?相反,我需要從com.mydomain.activity運行它呢?
我想我可能會改變周圍的東西,這樣我的家鄉聲明是這樣的:
package com.mydomain;
public class Activity {
private native String com_mindtherobot_samples_ndkfoo_NdkFooActivity_invokeNativeFunction();
}
但是,這是一個不走。只是要清楚,我知道如何,如果我改變我的包匹配什麼是在.C代碼編譯,使這項工作;然而,我需要能夠從不同的包中調用一個方法......這可能嗎?