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
Как обнаружить бездействие пользователей в Android Кнопка внутри просмотра списка создает проблему при прокрутке и при нажатии кнопки Лучший способ периодически выполнять действие – Обработчик? Заставка показывает пустой белый экран при выполнении AsyncTask Не удалось создать alertDialog в ActionBarActivity App Отклонено от игрового магазина, «предназначенного для семей» Настройка ViewModel для MvxFragment Панель инструментов, onCreateOptionsMenu () возвращает false, а вверху не работает Приложение Phonegap Build с использованием Crosswalk, сбой на Android Как развить расширенный LinearLayout из XML Facebook SDK для Android – первый вход очень медленный / занимает очень много времени Метод вызова mActionBar = getActionBar () дает ошибку Проблемы с предыдущим стеклом Android Fragment Можно ли связать человека с twitter и facebook при разборе? Лучший способ для осуществления интерактивной коммуникации в приложении Android TabHost