Articles of jni

Статические библиотеки и JNI

Я создал файл заголовка и соответствующий .c файл, полный функций, которые я хотел бы использовать с java-программой. Я создал заголовочный файл JNI, используя javah. Я использую gcc для компиляции моего заголовочного файла. Как связать мой обычный файл объекта c с моей статической библиотекой JNI, чтобы получить статическую библиотеку, которая использует мою библиотеку C? Я использую […]

jni – Медленная обработка на родном

Переключение на native, чтобы повысить производительность и скорость обработки, но, к сожалению, мое приложение работает слишком медленно. Кроме того, при загрузке изображений с высоким разрешением приложение выходит из строя. Вот мой полный код для вас, чтобы рассказать мне, как его улучшить. Код java: package com.example.invert; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; […]

Как вызвать метод Java, который возвращает String из C с помощью JNI?

Есть ли способ вызвать метод java, который возвращает String в C? Для Integer он работает так: JNIEXPORT jint JNICALL Java_Client_getAgeC(JNIEnv *env, jobject callingObject, jobject employeeObject) { jclass employeeClass = (*env)->GetObjectClass(env, employeeObject); jmethodID midGetAge = (*env)->GetMethodID(env, employeeClass, “getAge”, “()I”); int age = (*env)->CallIntMethod(env, employeeObject, midGetAge); return age; } Я долго искал, но ничего не работает для […]

Как поймать JNI Crashes как исключения с использованием механизма обработки сигналов в Java

Я разработал инструмент Java, и у него много функций JNI, я часто получаю JNI-сбои. Есть ли возможность избежать этих сбоев или уловить эти сбои в качестве исключений. Я занимался серфингом в Интернете и обнаружил, что это возможно благодаря обработке сигналов, chanining сигнала, sigaction () и т. Д. Но я не мог получить надежный источник, чтобы […]

Утечка памяти в собственном коде JNI

У меня есть часть кода JNI. Когда мы вызываем этот собственный метод + запускаем другие запросы, jvm будет аварийно завершен. Скорее всего, в этой части собственного метода JNI (c-код) происходит утечка памяти. Любой орган может помочь обнаружить утечку памяти в приведенном ниже коде? #include #include #include #include “fns_data.h” #include “fns_client.h” #include “sockRW.h” #include “/usr/local/include/jni.h” #include […]

Ошибка связи в Java

Я получаю следующую ошибку: Exception in thread “main” java.lang.UnsatisfiedLinkError: model.JNIResultSet.getSpieler()[Lmodel/Spieler; at model.JNIResultSet.getSpieler(Native Method) at model.JNIResultSet.main(JNIResultSet.java:18) Мои classы Java выглядят так: package model; public class Spieler { private String vorname; private String nachname; private int trikotnummer; public Spieler(String vorname, String nachname, int trikotnummer) { this.vorname = vorname; this.nachname = nachname; this.trikotnummer = trikotnummer; } } а […]

Нарушение доступа к исключению JNI

в настоящий момент я пытаюсь поиграть с JNI. Мой Java-код: public class test{ static{ System.loadLibrary(“wakeup64”); } public static native boolean setWakeupTime(Date date); public static void set(){ Date d = new Date(); setWakeupTime(d); } } C-код: #include #include “cpp_interface.h” #include JNIEXPORT void JNICALL Java_test_setWakeupTime (JNIEnv *env, jclass cl, jobject date){ printf(“test”); } int main(){ } Код […]

NullPointerException при вызове getFilesDir () в вызове JNI

Я пытаюсь вызвать getFilesDir () в Java из библиотеки C через вызов JNI, и я нахожусь в исключении NullPointerException, которое я не понимаю. Вот исключение: W/System.err( 1576): java.lang.NullPointerException W/System.err( 1576): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109) W/System.err( 1576): at MYService.getFilesDirPath(MYService.java:1150) W/System.err( 1576): at MYService.UtvGetPeristentPath(Native Method) Проблема в этой функции: public String getFilesDirPath() { try { return getFilesDir().getPath(); // <— […]

сопоставление задания с значением

jclass object = (*env)->FindClass(env,”java/lang/Integer”) // C Code Есть ли способ связать целочисленное значение с object ? Я хочу, чтобы object содержал / указывал на целое число.

var не становится глобальным, но остается локальным

Из следующего fragmentа я пытаюсь протестировать NewGlobalRef и попытаюсь сделать clsStr глобальным после объявления его в локальной области if . jstring Java_Package_LocalAndGlobalReference_returnGlobalReference (JNIEnv *env, jobject obj) { if(1) { printf(“In function make global reference\n”); jclass clsStr ; jclass cls = (*env)->FindClass(env,”java/lang/String”); if( cls == NULL) return NULL; // create a global reference of clsStr clsStr […]