Perguntas com a marcação «java-native-interface»

A Java Native Interface (JNI) oferece a capacidade de implementações de JVM para executar código nativo do sistema e a capacidade de código nativo para executar código Java (criando novas instâncias de JVM). As linguagens de destino mais comuns para JNI são C e C ++, para as quais pelo menos as implementações Sun / Oracle JDK fornecem comandos auxiliares (javap - para desmontagem de código, javah para geração de código c).








2
JNI convertendo jstring em char *
Passei uma string de URL de Java para código C como jstringtipo de dados por meio do uso de JNI. E meu método de biblioteca precisa de um char *url como. Como posso converter jstringem char *? PS: Existe alguma vantagem em usar jcharArray em C? (ou seja, passagem em …


15
referência indefinida a `__android_log_print '
O que há de errado com meu arquivo make? Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := foo LOCAL_SRC_FILES := foo.c LOCAL_EXPORT_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) foo.c #include <string.h> #include <jni.h> #include <android/log.h> #define LOG_TAG "foo" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) void test() { LOGI("test"); } ndk-build foo.c:9: undefined …


4
Como posso detectar SIGSEGV (falha de segmentação) e obter um rastreamento de pilha em JNI no Android?
Estou movendo um projeto para o novo Android Native Development Kit (ou seja, JNI) e gostaria de capturar o SIGSEGV, caso ocorra (possivelmente também SIGILL, SIGABRT, SIGFPE) para apresentar um bom diálogo de relatório de falha, em vez de (ou antes) o que acontece atualmente: a morte sem cerimônia imediata …


2
Chamar um método java de c ++ no Android
Estou tentando obter uma chamada de método Java simples de C ++ enquanto Java chama o método nativo. Aqui está o código Java: public class MainActivity extends Activity { private static String LIB_NAME = "name"; static { System.loadLibrary(LIB_NAME); } /** Called when the activity is first created. */ @Override public …

17
Como corrigir um UnsatisfiedLinkError (não é possível encontrar bibliotecas dependentes) em um projeto JNI
Estou trabalhando em um projeto Java que usa o JNI. O JNI chama uma biblioteca personalizada que eu mesmo escrevi, digamos mylib.dll, e que depende de uma biblioteca de terceiros, libsndfile-1.dll. Quando executo meu programa, ele trava com java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries. Pesquisei neste site (e em outros) …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.