- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
<分区>
我想在 c 中创建一个新数组,将原始数组加倍。这是我的 C 代码,它编译但应用程序崩溃:
#include <jni.h>
JNIEXPORT jobjectArray JNICALL Java_com_example_jninew_MainActivity_getNum(JNIEnv *env, jobject obj, jintArray arr)
{
int i,j, sum = 0;
jsize width = (*env)->GetArrayLength(env, arr);
int array[2][2];
for (i=0; i<width; i++){
jintArray *line = (*env)->GetObjectArrayElement(env, arr, i);
int height = (*env)->GetArrayLength(env, line);
jint *pos = (*env)->GetIntArrayElements(env, line, 0);
for (j=0; j<height; j++){
array[i][j] = 2*pos[j];
}
(*env)->ReleaseIntArrayElements(env, arr, pos, 0);
}
return array;
}
主要java代码:
package com.example.jninew;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.tv);
int[][] a = {{1,2},{3,55}};
a = getNum(a);
textView.setText("G"+a[0][1]);
}
static{
System.loadLibrary("getNum");
}
native int[][] getNum(int[][] a);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
你能帮我把数组返回到java端吗?我需要你的帮助!
在我的函数中,我试图获取已通过 JNI 传递给 C++ 类的字符串数组的大小,但我一直收到错误:“jobjectarray has not been declared”。这是我的 C++: int t
我有一个具有以下 JNI 方法的方法 JNIEXPORT void JNICALL Java_com_android_Coordinates_Updates ( JNIEnv * env, jobje
我有一个 Java 函数,它将接收可变数量的参数,并且在 JNI 中我接收 jobjectArray 中的所有参数。现在我的问题是:如何以原始形式返回参数(它们可以是字符串、 double 组、整数.
我是第一次使用 JNI。我有这个问题:在我的java代码中,有一个对象具有另一个对象(由我定义)的数组作为字段。现在,我需要从 native 代码设置此对象数组字段。我该怎么办? 提前谢谢您! :)
//***** 新问题。 ***** 当将结构传递给线程时,下面存在内存泄漏。不明白为什么,因为如果在主线程中直接调用线程内的代码不会泄漏内存。 class PeopleCounting{ //
我有 jobject 并且它里面有 jobjectArray,我正在使用 GetObjectField 获取 jobjectArray 然后转换它,但它不起作用任何人都可以帮忙吗? jfieldID
如何通过 jni 正确构造和传递不同对象的数组?我似乎无法将 jint 转换为 jobject。我原来的功能是: extern "C" JNIEXPORT jint ... Func(...) {
我正在使用 JNI 从 java 传递一个 jobjectarray(实际上是一个 byte[][])。 我想将其转换为 uint8_t* 或 vector (最好是后者)形式的可用“字节数组”,以便
我在使用 C++ 的 JNI 中工作,我创建了一个方法,其中一系列参数作为 jobjectarray 传递到我的 native 方法。我想使用这些参数在 JNI 中调用构造函数。但是,NewObjec
所以我决定将dll导入到我的java代码中。 它的作用是计算邻居矩阵。问题是我不知道如何将矩阵作为 jobobjectArray 返回。 JNIEXPORT jobjectArray JNICALL
请原谅我,因为我是 c++ jni 环境的新手 我正在尝试通过 JNI 桥将 String[] 数组从 Java 传递到 C++,同时遵循我在此处找到的提供此代码段的提示: void MyJNIFun
如果我尝试从 JNI 将 jstrings 传递给 jobjectArray 中的 Java,我就会出错。我对此进行了多次研究,它应该有效。但是我的签名 [Ljava/lang/String 不起作用
这个问题在这里已经有了答案: How to return an array from JNI to Java? (4 个答案) 关闭 7 年前。 我想在 c 中创建一个新数组,将原始数组加倍。这是我
我想使用 JNI 将字符串数组从 C 返回到 Java。我发现我可以这样使用 NewObjectArray(): JNIEXPORT jobjectArray JNICALL Java_Array_i
我想通过 JNI 将字符串数组从 C++ 传递给 Java,意味着将 String[] 返回给 java。 当我在 C++ 中打印 char* 时是正确的,但是当我在 Java 中打印 String
我正在开发一个调用 native dll 库的 Java 应用程序。我调用的 c++ 方法的代码: JNIEXPORT jobjectArray JNICALL Java_Surf_TopSurfWr
我使用以下代码来处理 Android 和 JNI 中的 JNI 数组。 但是我发现返回“jobjectArray”无法在 API 21/22 (Android 5.0) 上完成,但可以在 API 19
我是一名优秀的程序员,十分优秀!