Articles of Android ndk jni

Как получить поддерживаемую версию JNI для Android в устройстве?

Мне нужно знать, поддерживается ли JNI в устройстве Android и какой версии. Какой вызов функции я могу использовать для этого? Также следует ли мне это называть со стороны Java или NDK?

Как создать общую библиотеку без JNI в Android?

Я разрабатываю приложение для Android, которое должно быть разделяемой библиотекой. Я уже сделал тот же lib в Linux (с использованием gcc), поэтому хочу скомпилировать одну и ту же общую lib в Android (ARM-процессор). Но NDK только поддерживает JNI. Теперь я хочу создать отдельную разделяемую библиотеку без прямого взаимодействия JNI. У меня много файлов C и […]

Сумма двух значений с использованием ndk android

Я успешно запускаю свой jni-пример. Теперь я пытаюсь добавить два значения, но его сумма не является правильной. Я делюсь своим кодом. Пожалуйста, скажите мне, что плохого я делаю jint Java_com_example_hellojni_HelloJni_sumTwoValues( JNIEnv* env,jint a, jint b){ //_android_log_print("HelloJni", "values a", "%p", &a); __android_log_print("HelloJni", "LOG_TAG", "Need to print : %d %d",a, b); return (a+b); } И как я […]

Перенаправление STDIN и STDOUT программы C на Android

Я пытаюсь перенести программу на андроид с помощью JNI. Я смог настроить программу и получить java и c работать отлично вместе. Проблема в том, что мне нужно иметь возможность использовать STDIN, так как программа C считывает данные из STDIN и возвращает ответ через STDOUT (программа C является клиент-серверным приложением). Я не знаю, стоит ли упоминать, […]

Макропроцессор в Android.mk игнорируется, но работает в Application.mk

Я создал проект Android, используя jni. Теперь я хочу использовать макросы препроцессора, чтобы отличать Lite от полной версии. Он должен выглядеть так: #ifdef LITE auto label = LabelTTF::create("Hello Cocos2dx Lite", "Arial", 24); #else auto label = LabelTTF::create("Hello Cocos2dx Full", "Arial", 24); #endif Для этого я определил переменную в APP_CPPFLAGS в Android.mk следующим образом: APP_CPPFLAGS += […]

Android-приложение с 2 библиотеками с jniLibs – сбой приложения

В моем приложении Android я использую две библиотеки, каждая из которых имеет свои собственные jniLib. Библиотека 1 – https://github.com/tekinarslan/AndroidPdfViewer Библиотека 2 – пользовательский видеоплеер sdk Приложение будет скомпилировано и построено отлично. Обе библиотеки имеют jniLibs в правильном месте. Кажется, что будет работать только одна библиотека, в данном случае – pdfView. Вызывается библиотека 2. Он ломается, […]

Android NDK не удалось загрузить библиотеку

Мой родной код библиотеки: #include <string.h> #include <jni.h> jstring Java_com_mindtherobot_samples_ndkfoo_NdkFooActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis) { return env->NewStringUTF("Hello from native code!"); } Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libpacman LOCAL_SRC_FILES := main.cpp LOCAL_CFLAGS := -DANDROID_NDK LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) MainActivity.java: public class MainActivity extends Activity { static { System.loadLibrary("libpacman"); } // declare the […]

JNI сбой при вызове с аргументом String

Я пытаюсь вызвать функцию, реализованную в C из моего кода Android. Поток кода следующий: В onCreate () моей основной деятельности у меня есть следующее: TestClass tc = new TestClass(); tc.act(); Это TestClass: package bar.foo; public class TestClass { static { System.loadLibrary("testclass"); } public native void doStuff1(String s); public native void doStuff2(String s1, String s2); TestClass() […]

Java.lang.UnsatisfiedLinkError: собственный метод не найден

Я пытаюсь сделать приложение NDK, но я получаю эту ошибку: java.lang.UnsatisfiedLinkError: Native method not found: com.example.hellondk.jni.HelloNDK.hello:()I Я не понимаю, потому что имя функции C ++ совпадает с именем Java packagename и классом HelloNDK.cpp #include <jni.h> JNIEXPORT jint JNICALL Java_com_example_hellondk_jni_HelloNDK_hello(JNIEnv* env, jobject o){ return (jint) 2; } HelloNDK.java package com.example.hellondk.jni; public class HelloNDK { public native […]

Не удалось загрузить libfoo: findLibrary возвратил null

Я сделал все «правильно»: Создал мой модуль JNI с LOCAL_MODULE := libfoo в LOCAL_MODULE := libfoo / Android.mk Вызывается System.loadlibrary("libfoo") Объявил правильную подпись для метода и даже дважды проверил его с помощью javah Но все еще получил исключение UnsatisfiedLinkError с сообщением: Не удалось загрузить libfoo: findLibrary возвратил null

Intereting Posts
Разница между Phonegap и Sencha Touch Элемент списка Android не отображает выбранный цвет Войдите в мое приложение, используя учетные данные facebook Как создать графический интерфейс в Android вместо использования XML? Как я могу читать книги PDF с анимацией завивки страницы в Android? Ошибка перехода от общего элемента из TextView в EditText Android Studio: ButterKnife 6.1.0 Duplicate Класс: $$ Просмотреть инжектор Как вызвать фрагмент из фрагмента? Определение сертификата подписи из APK Контекстное меню из списка Фрагмент теряет свое состояние при двойном вращении устройства Содержимое элементов должно состоять из хорошо сформированных символьных данных или разметки. AndroidManifest.xml Как лицензировать приложение для Android? Как обрабатывать сообщения обработчика, когда действие / фрагмент приостановлено Android / Java: HttpURLConnection не возвращает заголовки перенаправленного файла (например, на S3)