Pytania otagowane jako java-native-interface

Java Native Interface (JNI) zapewnia implementacjom JVM zarówno możliwość uruchamiania natywnego kodu systemu, jak i możliwość uruchamiania kodu Java przez natywny kod (poprzez tworzenie nowych instancji maszyny JVM). Najpopularniejszymi językami docelowymi dla JNI są C i C ++, dla których przynajmniej implementacje Sun / Oracle JDK zapewniają polecenia pomocnicze (javap - do dezasemblacji kodu, javah do generowania kodu c).

30
Nie udało się załadować biblioteki współdzielonej JNI (JDK)
Podczas próby otwarcia Eclipse pojawia się wyskakujące okno dialogowe: Nie udało się załadować biblioteki współdzielonej JNI „C: /JDK/bin/client/jvm.dll”. Następnie siła Eclipse zamyka się. Oto kilka kwestii, które chciałbym przedstawić: Sprawdziłem, czy coś istnieje na tej ścieżce. To istnieje. Zarówno My Eclipse, jak i Java SE Development Kit są 64-bitowe. Sprawdziłem …







2
JNI konwertuje jstring na char *
Przekazałem ciąg adresu URL z Java do kodu C jako jstringtyp danych za pomocą JNI. A moja metoda biblioteczna wymaga char *as url. Jak mogę zamienić jstringna char *? PS: Czy jest jakaś korzyść z używania jcharArray w C? (tj. przekazywanie char []zamiast ciągu znaków w metodzie natywnej)


15
niezdefiniowane odniesienie do `__android_log_print '
Co jest nie tak z moim plikiem 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 reference …


4
Jak mogę złapać SIGSEGV (błąd segmentacji) i uzyskać ślad stosu pod JNI na Androidzie?
Przenoszę projekt do nowego zestawu Android Native Development Kit (tj. JNI) i chciałbym złapać SIGSEGV, gdyby to się stało (prawdopodobnie również SIGILL, SIGABRT, SIGFPE), aby przedstawić ładne okno dialogowe raportowania awarii, zamiast (lub wcześniej) co się obecnie dzieje: natychmiastowa bezceremonialna śmierć procesu i prawdopodobnie próba ponownego uruchomienia go przez system …

14
java.lang.UnsatisfiedLinkError no *****. dll w java.library.path
Jak mogę załadować niestandardowy plik dll w mojej aplikacji internetowej? Wypróbowałem następujące: Skopiowałem wszystkie wymagane biblioteki dll w system32folderze i próbowałem załadować jeden z nich w ServletkonstruktorzeSystem.loadLibrary Skopiowano wymagane biblioteki DLL do tomcat_home/shared/libitomcat_home/common/lib Wszystkie te biblioteki DLL znajdują się w WEB-INF/libaplikacji internetowej

2
Wywołanie metody Java z języka C ++ w systemie Android
Próbuję uzyskać proste wywołanie metody Java z C ++, podczas gdy Java wywołuje metodę natywną. Oto kod 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 void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); …

17
Jak naprawić błąd UnsatisfiedLinkError (nie można znaleźć bibliotek zależnych) w projekcie JNI
Pracuję nad projektem Java, który używa JNI. JNI wywołuje bibliotekę niestandardową, którą sam napisałem, powiedzmy mylib.dll, która zależy od biblioteki innej firmy, libsndfile-1.dll. Kiedy uruchamiam program, ulega awarii z java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries. Przeszukałem tę witrynę (i inne) i wypróbowałem kilka poprawek: Pobiegłem chodzik dla uzależnień. DW przekazał …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.