翻译 - 从Unity脚本调用Android NDK功能
ringa_lee
ringa_lee 2017-04-17 11:23:27
[Android讨论组]

我正在用Unity制作Android应用程序,我从Unity得到了一些资源包,但是Unity启动之前我不知道URL。因此,Unity需要调用本机(Android)的功能来获得URL。
我不知道应该怎么做(依我看来Unity文档很坑爹)。我决定用NDK来解决这一问题,不用Unity就能解决library里的文件。现在问题是怎样在Unity里调用这些C函数。
这是我的lib:

#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;  
}  

Unity代码加载library没问题(使用[DllImport ("libname")])。
现在,如果我“正确的”加载这个功能,就像private static extern jstring Java_com_lyfelotto_blah_blah_getURL(JNIEnv * env, jobject this),不好的事情就会发生。
是不是我做错了什么?(就像我说的,我所要做的是得到一个字符串)。有没有解决办法?

原问题:Calling Android NDK function from Unity Script

ringa_lee
ringa_lee

ringa_lee

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号