android调用unity函数,从Unity脚本调用Android NDK函数
因此,我正在创建一个使用Unity的Android应用…从Unity获得了一些资产捆绑,但在Unity启动之前我不知道该URL。因此,Unity需要在本机(Android)端调用一个函数来获取URL。我已经迷路了一段时间(Unity文档非常糟糕,恕我直言)。我决定使用NDK来帮助我。没有Unity,关于我的库文件的所有工作都会解决……现在问题是在Unity中调用这些C函数。这是我的书房:#incl
因此,我正在创建一个使用Unity的Android应用…从Unity获得了一些资产捆绑,但在Unity启动之前我不知道该URL。因此,Unity需要在本机(Android)端调用一个函数来获取URL。
我已经迷路了一段时间(Unity文档非常糟糕,恕我直言)。我决定使用NDK来帮助我。没有Unity,关于我的库文件的所有工作都会解决……现在问题是在Unity中调用这些C函数。
这是我的书房:
#include
#include
#include
#define DEBUG_TAG "NDK_blahy"
extern "C" {
jstring Java_com_blah_blah_getURL(JNIEnv * env, jobject this);
void Java_com_blah_blah_setURL(JNIEnv * env, jobject this, jstring URL);
}
jstring url;
void Java_com_blah_blah_setURL(JNIEnv * env, jobject this, jstring URL)
{
url = URL;
jboolean isCopy;
const char * szLogThis = (*env)->GetStringUTFChars(env, URL, &isCopy);
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [%s]", szLogThis);
(*env)->ReleaseStringUTFChars(env, URL, szLogThis);
}
jstring Java_com_lyfelotto_blah_blah_getURL(JNIEnv * env, jobject this)
{
return url;
}
我的统一代码可以很好地加载库(使用[DllImport ("libname")])。
现在,如果我像这样正确“加载”函数,则会private static extern jstring
Java_com_lyfelotto_blah_blah_getURL(JNIEnv * env, jobject this)发生不好的事情
我做错了这个办法吗?(就像我说的,我需要做的只是获取一个字符串)。有任何想法吗?
更多推荐
所有评论(0)