首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Studio NDK返回jint

Android Studio NDK返回jint
EN

Stack Overflow用户
提问于 2015-05-15 18:49:40
回答 1查看 3.2K关注 0票数 1

我成功地学习了本教程https://www.youtube.com/watch?v=kFtxo7rr2HQ,学习如何使用Android构建NDK应用程序。

该教程使用了一个public native String HelloJNI();

该字符串在HelloJNI.c文件中设置。

代码语言:javascript
复制
#include "com_example_myapplication_MainActivity.h"
/* Header for class com_example_myapplication_MainActivity */

/*
 * Class:     com_example_myapplication_MainActivity
 * Method:    HelloJNI
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_example_myapplication_MainActivity_HelloJNI
  (JNIEnv *env, jobject obj)
  {
(*env)->NewStringUTF(env, "Hello from jni");
}

并在运行时加载

代码语言:javascript
复制
static{
    System.loadLibrary("HelloJNI");
    }

现在,我试图做同样的事情,但是检索和int,而不是string public native int getintONE();

我遵循本教程中的相同步骤,一切正常,现在我的getintONE.c读取

代码语言:javascript
复制
#include "com_example_myapplication_MainActivity.h"
/*
 * Class:     com_example_myapplication_MainActivity
 * Method:    getintONE
 * Signature: ()I
 */
JNIEXPORT jint JNICALL com_example_myapplication_MainActivity_getintONE
   (JNIEnv *env, jobject obj)

什么是等价物

代码语言:javascript
复制
JNIEXPORT jstring JNICALL Java_com_example_myapplication_MainActivity_HelloJNI
  (JNIEnv *env, jobject obj)
  {
(*env)->NewStringUTF(env, "Hello from jni");
}

返回一个int,而不是一个字符串。

我在这里阅读了许多问题,阅读了教程和文档,我在研究中看到并尝试过的大部分内容是返回示例、jint数组、将jint转换为string,以及在我看来涉及更多的高级主题。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 18:57:13

jint是一种基本类型,所以如果您已经包含了jni.h,那么只需从函数中返回一个jint--不需要像使用NewStringUTF()那样为字符串分配对象。

代码语言:javascript
复制
JNIEXPORT jint JNICALL com_example_myapplication_MainActivity_getintONE(JNIEnv *env, jobject obj) {
      return 1;  //or anything that can be cast to a jint
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30266741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档