Описание тега java-native-interface

Собственный интерфейс Java (JNI) дает как возможность реализациям JVM запускать собственный системный код, так и возможность для собственного кода запускать код Java (путем создания новых экземпляров JVM). Наиболее распространенными целевыми языками для JNI являются C и C++, для которых, по крайней мере, реализации Sun/Oracle JDK предоставляют вспомогательные команды (javap - для дизассемблирования кода, javah для генерации кода c).
1 ответ

JNI - Слушатель в C++/Java - возможно ли создавать экземпляры объектов Java в C++ и использовать их в качестве параметров

Можно ли использовать следующее с JNI? public NativeClass { static { System.loadLibrary("dll"); } public static native void addListener(Listener listener); } public interface Listener { public void eventOccurred(Info info); } public Info { private f…
27 мар '14 в 10:27
0 ответов

Android - полностью очищает память, используемую jni

Я создаю приложение, которое обрабатывает очень большие изображения на стороне jni. И под очень большими изображениями я имею в виду, что почти все доступное ОЗУ устройств распределяется на несколько больших блоков. Проблема в том, что после выделен…
01 окт '16 в 14:21
1 ответ

Развертывание JRE через JNI: jvm.dll не предназначен для работы в Windows или [......]

Поэтому я создаю приложение Win32, которое упаковывает Java Runtime Environment (JRE) в качестве ресурса. Приложение извлекает ресурс на диск и распаковывает его. Теперь я хотел бы использовать этот JRE для запуска Java-программы с использованием AP…
28 фев '15 в 06:35
1 ответ

Обнаружить клавишу Shift вниз, используя jna

Я реализовал keyBoardHook, но, тем не менее, не могу обнаружить нажатой символ, пока клавиша Shift не нажата. Я попытался использовать функцию GetAsyncKeyState окон, чтобы определить, когда нажата клавиша Shift. Но это не обрабатывает сдвиг +2 = @. …
23 сен '11 в 05:47
0 ответов

Как преобразовать char[] в UTF8, чтобы избежать некорректной ошибки продолжения байта в JNI

Используя JNI, я передаю значения из файла в Java. Однако бывают случаи, когда возникает эта ошибка / предупреждение: JNI WARNING: illegal continuation byte 0xc0 string: '���������������������' in Lcom/package/project/parser;.getSong (Lcom/package/p…
2 ответа

Как я могу установить значение переменной типа Double для моего класса с помощью JNI?

Если я просто хочу установить значение переменной типа Double, я могу написать код: public static native int getDoubleVar(Double dobj); JNIEXPORT jint JNICALL test_jni_Native_testGet(JNIEnv *env, jclass type, jobject dobj) { jclass DoubleClass = env…
15 янв '16 в 14:14
1 ответ

Установка привязки Java ZeroMQ (jzmq) с помощью Maven, библиотека отсутствующего исходного кода

Я пытаюсь установить jzmq, привязку Java ZeroMQ, из репозитория Maven ( http://search.maven.org/). При добавлении в качестве зависимости к моему pom.xml[1] Maven загружает основной файл jar, который, как и ожидалось, предоставляет библиотеку Java. В…
19 сен '13 в 18:29
0 ответов

Для чего нужна библиотека Java libjli?

Я использую JNI, чтобы позволить коду C разгрузить некоторую работу, лучше всего выполненную в Java. В этом вопросе я пытался связать библиотеки libjvm и libjli, чтобы мой код работал, но теперь я задаюсь вопросом, нужна ли мне вообще библиотека JLI…
29 июн '18 в 13:20
1 ответ

Android JNI - загрузка файла предиктора формы dlib

В обычном проекте Visual Studio C++ я использую следующий код для загрузки файла предиктора формы в переменную dlib shape_predictor: dlib::shape_predictor spredictor; //calling the file with a relative path dlib::deserialize("sp68fl.dat") >> s…
0 ответов

В SO-файлах отказано в доступе

Невозможно инициализировать файлы *.so, расположенные в моей папке libs. В LogCat отображается ошибка "Отказано в доступе". Ошибка: E/art (17495): dlopen("/data/data/XXXXX/files/libs/XXXX.so", RTLD_LAZY) failed: dlopen failed: couldn't map "/data/da…
08 мар '17 в 11:15
1 ответ

Как конфертировать из yv12 в yuv420p

В кадре предварительного просмотра камеры я получаю данные в формате yv12 на стороне Android. Мне нужно конвертировать его в YUV420P на стороне jni. Как мне это сделать? Как я прочитал из многих источников в формате YUV420P, сначала появляется сэмпл…
06 май '13 в 05:35
9 ответов

Как мне конвертировать jstring в wchar_t *

Допустим, что на стороне C++ моя функция принимает переменную типа jstring названный myString, Я могу преобразовать его в строку ANSI следующим образом: const char* ansiString = env->GetStringUTFChars(myString, 0); есть ли способ получить const w…
15 сен '08 в 23:51
3 ответа

Android NDK: нет таблицы символов архива (запустите ranlib)

Я обновляю свои проекты, чтобы использовать Android ndk 16b, и ранее он использовал 12b (работал нормально). После обновления я сталкиваюсь со следующей ошибкой при сборке финального.so: /Users/ssk/code/client/git/thirdparty/android-ndk-r16b/android…
19 сен '18 в 03:05
1 ответ

Android - получить кадры из MediaPlayer, играющего на SurfaceView, для передачи их в собственный код C++

Как описано в заголовке, я пытаюсь получить MediaPlayer кадры (во время воспроизведения) и передать их в мой собственный код C++ (используя JNI). Итак, я использую MediaPlayer а также "setDisplay(SurfaceView)"метод рисования видео пикселей на Surfac…
0 ответов

Сбой приложения при попытке загрузить System.loadLibrary("loader-jni")

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.forsale.forsale-2/base.apk"],nativeLibraryDirectories=[/data/app/com.forsale.forsale-2/lib/arm64, /data/app/com.forsale.forsale-2/base.apk!/lib/arm64-…
15 янв '19 в 16:08
0 ответов

Построение ошибки: у depfile есть несколько путей вывода ниндзя: сборка остановлена: подкоманда не выполнена

Я получил эту ошибку при создании проекта Java с кодом JNI, который нуждается в поддержке CMake. Этот проект построен на базе Android Studio, с поддержкой NDK, CMake и LLVM. Это флаги ниже, которые использует CMake. Я на самом деле использовал код C…
0 ответов

Обертка FFmpeg для Android

Мне удается скомпилировать ffmpeg и получить .so файлы для разных арок, таких как amreabi, armeabi-v7a и т. д. Мне удалось интегрировать эти готовые библиотеки в мой проект Android с помощью CMakeLists.txt через собственный .cpp обертка. Проблема в …
3 ответа

JNI GetMethodID не работает для конструктора внутреннего класса

У меня есть класс с частным подклассом. Я хочу создать экземпляр этого подкласса в оболочке JNI и вернуть его. Я гуглил и пытался заставить это работать, но безуспешно (methodID является нулем). Какие-либо предложения? JNIEXPORT jobject JNICALL Java…
3 ответа

OpenCV как глобальный модуль JBoss-as

Представление проблемы Я пытаюсь установить OpenCV как глобальный модуль экземпляра JBoss-as. Версии: JBoss-as: 7.1.1 Финал OpenCV: 2.4.5 (скомпилировано с поддержкой Java) Я начал с новой установки Ubuntu Server 12.04 64 бит с только JBoss-as и Ope…
23 апр '13 в 15:27
0 ответов

Как сделать доступным libgthread-2.0.so.0 внутри Docker Container

Я пытаюсь загрузить нативную библиотеку JNI внутри приложения весенней загрузки. Она прекрасно загружается, когда я запускаю ее из eclipse, предоставляя -Djava.library.path={path_to_mynativelib}, как аргумент VM, но когда я пытаюсь запустить приложе…