- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我目前所拥有的:我传递了一个具有 2 个字段的对象:String 和 Integer,作为参数我想发送信息在 C 部分进行处理,这在这一点上并不重要......我在 jstring 声明中收到投诉
JNIEXPORT jint JNICALL Java_Tier3_NativeMethods_totalPalletsIn(
JNIEnv *env, jclass cls, jobject stat) {
jclass staticsitcs = (*env)->GetObjectClass(env, stat);
// Here I try to get it using the ID
jfieldID idDate = (*env)->GetFieldID(env, staticsitcs, "date", "S");
jstring dateString = (jstring)(*env)->GetStringRegion(env, stat, idDate);
// Here converting whatever I get in jstring to char*
char* date = (*env)->GetStringUTFChars(env,dateString,0);
// Getting the 2nd field from the object
jfieldID idNumber = (*env)->GetFieldID(env, staticsitcs, "amount", "I");
jint amount = (*env)->GetDoubleField(env, stat, idNumber);
// Calling C method
jint totalPallets = checkTotalPalletsIn(date, amount);
(*env)->ReleaseStringUTFChars(env, dateString, date);
return totalPallets;
}
我错过了什么?
最佳答案
jstring dateString = (jstring)(*env)->GetObjectField(env, stat, idDate);
……之后一切正常。
关于java - JNI。如何从 jobject 获取 jstring 并将其转换为 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501253/
我的 Java 类中有一个字符串变量: public class myclass { protected final String file; myclass(String f) {
JNIEXPORT int JNICALL Java_com_ndkfoo_test_GL2JNILib_step2(JNIEnv * env, jobject obj, jstring fileP
我一直在尝试调用具有以下签名的 C 函数 int changeFoo(L_TCHAR* pszFileSrc){....} 在我的 JNI 调用中,我的方法如下所示: JNIEXPORT jint J
当我尝试将 WCHAR_T* 传递给 java 方法时,应用程序崩溃了。 我有 WCHAR_T* 变量及其长度。 我知道如何将它转换为 jstring 以调用 java 方法。 我的 C++ 代码:
这是我的 JNI C 代码: JNIEXPORT jint JNICALL Java_org_avuna_httpd_util_CLibJNI_bind(JNIEnv * this, jclass c
C++ 端看起来像这样: JNIEXPORT jint JNICALL Java_Myclass_showMessage (JNIEnv* env, jobject obj, jstring titl
我正在调用一个返回字符串的 Java 函数: QAndroidJniObject obj = QAndroidJniObject::callStaticObjectMethod("HelloJava"
我对JNI知之甚少|以及内部的处理方式 JNI环境。我有一个简单的问题。 我在 Java 中有一个方法调用 JNI方法并传递一个 String在参数中。 JNI方法在 jstring 中接受该字符串对
#include #include "Package_MyTester.h" jstring Java_Package_MyTester_NMethod (JNIEnv *env, jobject
假设在 C++ 端,我的函数采用类型为 jstring 的变量,名为 myString。我可以将其转换为 ANSI 字符串,如下所示: const char* ansiString = env->Ge
我正在使用下面的 JNI 代码将 jchararray 转换为 jstring,但我在 Linux 中只获得第一个字符。 char *carr =(char*)malloc(length+1); (
我需要在我的 native 代码中使用 const char * 所以,我将 java 端的参数作为 jstring 并使用以下语句 JNIEXPORT int JNICALL JNIFUNCTION
我正在尝试将 wstring 从我的 cpp 代码转换为 jstring。 我知道有一个名为 NewStringUTF 的方法可以从 std::string 获取 jstring(当然是在从该字符串获
我的 cpp 代码包含一个我希望转换为 const char* 的 jni 函数。这是我正在使用的代码 extern "C" { void Java_com_sek_test_JNITest_prin
我正在使用 basic_string类型并需要将其转换为 jstring 以通过 JNI 层。我想知道最好的方法是什么。我有一个函数可以给我 std::string来 self 的 basic_str
我正在尝试将 C++ std::string 转换为 jstring 并将其返回。这将很容易 JNIEnv*->NewStringUTF(stdString.c_str()) 但问题是我正在转换的字符
我通过使用 JNI 将一个 URL 字符串从 Java 传递到 C 代码作为 jstring 数据类型。我的库方法需要一个 char * 作为 url。 如何在 char * 中转换 jstring
我正在尝试为现有 C++ 代码创建 Java 接口(interface)。 我的功能之一与此类似: JNIEXPORT jstring JNICALL Java_com_testproxy_Nativ
我们最近从 Jerkson 切换到 json4s,很快发现这两个库的默认反序列化行为大相径庭。 我们遇到的一个问题是我们有时会收到 json 输入,其中数字字段表示为字符串而不是数字 //exampl
我在 unix 中将 wstring 转换为 jstring 时遇到问题,因为 linux 上 wchar_t 的大小为 4 个字节(不像 Windows 是 2 个字节,因此我无法将 wchar_t
我是一名优秀的程序员,十分优秀!