Android Studio: Ei voi ratkaista vastaavaa JNI-toimintoa

Romulus Urakagi Ts'ai 01/29/2016. 0 answers, 10.841 views
android android android-studio android-studio android-ndk android-ndk jni fft

Olen lukenut tämän kysymyksen ja tämän kysymyksen , mutta en silti pysty tekemään asioita työtä.

Ongelma on sama, yritän käyttää FFTS: tä Android Studio 1.5.1: ssa, joten tiedostoja luodaan, mutta Android Studio ei löydä alkuperäisiä menetelmiä ja UnsatisflyLinkError heitetään.

Edit: Löysin ongelman, että funktiota ei ole koottu niin tiedostoon.

cpu_check.c

  #ifdef ANDROID  #include <jni.h>  #include <cpu-features.h>   JNIEXPORT jboolean JNICALL Java_nz_ac_waikato_ffts_FFTS_has_neon  (JNIEnv * env, jclass jc)  {      jos (android_getCpuFamily () == ANDROID_CPU_FAMILY_ARM &&          (android_getCpuFeatures () & ANDROID_CPU_ARM_FEATURE_NEON)! = 0)      palaa JNI_TRUE;       // Käytä NEON-optimoidut rutiinit       muu      paluu JNI_FALSE;       // käytä sen sijaan muita kuin NEON-varajärjestelmiä  }  #loppu Jos 

Kun tarkastelen koottu libcpucheck.so, siinä ei ole ~has_neon toimintoa. Mutta se on koko 16K joidenkin toimintojen, kuten CPU tarkistus. Tässä on Android.mk :

  LOCAL_PATH: = $ (soita my-dir)   sisältää $ (CLEAR_VARS)   LOCAL_MODULE: = cpucheck  LOCAL_SRC_FILES: = cpu_check.c   LOCAL_STATIC_LIBRARIES: = ominaisuudet  sisältää $ (BUILD_SHARED_LIBRARY)   sisältää $ (CLEAR_VARS)   LOCAL_MODULE: = ffts  LOCAL_C_INCLUDES: = jni / include jni / src  LOCAL_CFLAGS: = -DHAVE_DECL_MEMALIGN -std = c99 \      -Wno-osoitin-int-cast -Wno-int-to-osoitin-cast  LOCAL_SRC_FILES: = \      ffts_jni.c \      src / ffts.c ​​\      src / ffts_nd.c \      src / ffts_real.c \      src / ffts_real_nd.c \      src / ffts_small.c \      src / patterns.c  LOCAL_LDLIBS: = -lasku    ifeq ($ (TARGET_ARCH_ABI), armeabi-v7a)  LOCAL_MODULE: = ffts-vfp  LOCAL_CFLAGS + = -DHAVE_VFP  LOCAL_SRC_FILES + = \      src / codegen.c \      src / vfp.s  loppu Jos   sisältää $ (BUILD_SHARED_LIBRARY)   sisältää $ (CLEAR_VARS)   LOCAL_MODULE: = ffts  LOCAL_C_INCLUDES: = jni / include jni / src  LOCAL_CFLAGS: = -DHAVE_DECL_MEMALIGN -std = c99 \      -Wno-osoitin-int-cast -Wno-int-to-osoitin-cast  LOCAL_SRC_FILES: = \      ffts_jni.c \      src / ffts.c ​​\      src / ffts_nd.c \      src / ffts_real.c \      src / ffts_real_nd.c \      src / ffts_small.c \      src / patterns.c  LOCAL_LDLIBS: = -lasku    ifeq ($ (TARGET_ARCH_ABI), armeabi-v7a)  LOCAL_MODULE: = ffts-neon  LOCAL_CFLAGS + = -DHAVE_NEON  LOCAL_ARM_NEON: = totta  LOCAL_SRC_FILES + = \      src / codegen.c \      src / neon.s  loppu Jos   sisältää $ (BUILD_SHARED_LIBRARY)   $ (puhelun tuonti-moduuli, android / cpufeatures)  
3 Comments
Kyone 01/29/2016
static { System.loadLibrary("ffts"); } static { System.loadLibrary("ffts"); } teidän Activity Java -lähdetiedostossa? Mikä on tarkka virheloki? Onko Java_nz_ac_waikato_ffts_FFTS_has_neon toteutettu ftts.cpp ?
Romulus Urakagi Ts'ai 01/30/2016
Joo. Todistan, että ongelma oli: Toiminto ei ole käännetty niin tiedostoon. Muokkaan viestiä.
Alex Cohn 05/28/2017
Tiedostosi näyttävät oikeilta. Jos kysymys on vieläkin ajankohtainen, yritä suorittaa ndk-build V=1 ja julkaista verbose build-loki lisäanalyysille.

No Answers Yet

Related questions

Hot questions

Language

Popular Tags