栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过JNI将C ++字符串发送到Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过JNI将C ++字符串发送到Java

在您共享的函数中,在C
代码中,您正在使用创建对象数组

NewObjectArray
。然后在for循环中,您将使用创建一个字符串
NewStringUTF
并将其存储在数组的索引中
SetObjectArrayElement
。到目前为止,您的对象数组仅对您的c
代码有效,对您的Java代码未知。只有当您返回它时,您的Java应用程序才能访问它。
我可以想到几种将字符串从c ++发送到java的方法,尽管它可能与您的意图不符。

  1. 将String数组传递给您的本机函数。在您的本机代码中,您可以使用访问每个元素,

    GetObjectArrayElement
    并使用进行更新
    SetObjectArrayElement
    。这可能毫无意义,因为您最终不得不调用一个我认为您不想要的函数。

  2. 如果您已经在Java代码中将字符串定义为字段,则可以使用

    GetFieldID
    和从本机访问该字符串
    GetObjectField
    ,然后可以使用对其进行更新
    SetObjectField
    。我不知道您将如何向Java代码发出该字段已更新的信号(如果您需要的话)

编辑
您编写的更新函数旨在从Java层调用。提示是该函数的名称

Java_the_package_MainActivity_getJniString
。要从本机上下文调用Java代码,您将需要对
env
and的引用
obj



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号