2014-07-23 2 views
2

나는 stackoverflow에서 이전에 보여준 답을 두 번 이상 테스트했습니다. 그들 중 누구도 일하고 ​​있지 않습니다. Android Studio 0.8.2의 최신 버전 ()을 사용합니다.안드로이드 스튜디오에서 .so 라이브러리를 사용하세요. 0.8.2

나는 libfourier.so입니다. 이것은 .c에서 만들어진 네이티브 라이브러리입니다.

다른 파일이 없습니다.

이전 응용 프로그램에서 사용되어 작동했습니다. 이 고속 푸리에 2.

의 전력이 가능한가요되는 입력없이 변환을 수행 할 수 있기 때문에

나는이 라이브러리를 필요하십니까? 그렇다면 어떻게?

은 현재 내가 /libs/armeabi/libfourier.so

에 libfourier.so 을 넣어 가지고 내가

static { System.loadLibrary("fourier"); } 

를 사용하여 전화를하지만 나는 UnsatisfiedLinkException 라이브러리를 알리는 얻을 찾을 수 없습니다.

+0

그들이 폴더를 제거했다 (장치에서 디버깅을 사용하는 것을 잊지 마세요)'libs와/armeabi '? – Blackbelt

+0

정확히 무슨 뜻입니까? –

+0

모양은 지원되지 않습니다. 여기를보세요 : http://stackoverflow.com/questions/16683775/include-so-library-in-apk-in-android-studio – Blackbelt

답변

0

진짜 마법은 없습니다. 다른 모든 라이브러리와 마찬가지로 libs/armeabi/libfourier.so에 넣으십시오.

다르게 말하는 사람은 모두 잘못되었습니다.

우선 라이브러리는 실제 장치에서 즉시 발견되었습니다. 그래서 Android Device Manager와 Genymotion의 에뮬레이터는이 라이브러리를 분명히 찾을 수 없습니다. 또는 응용 프로그램이 * .apk로 설치되지 않았습니다.

전문가에게는 apk 파일을 설치할 수 있습니다. 하지만 나 같은 게으른 사람들에게는 실제 장치이 트릭을 수행합니다.

둘째, 네이티브 코드의 네이티브 함수에서 패키지 이름이 해당 안드로이드 코드의 네이티브 함수 호출과 일치하는지 확인해야합니다.

intec.ugent.be.MyClass.nativeMethod() 이상의 Android를 사용하는 경우 기본 방법은 Java_intec_ugent_be_MyClass_nativeMethod(..)이어야합니다. 네이티브 라이브러리에 JNI_onLoad을 사용하지 않는 경우입니다.

물론 ndk-build으로 jni 패키지를 다시 작성해야합니다. libs/armeabi에 새로운 so 파일을 추가하십시오. 그래서

그냥 TEST DEBUG을 실행하는 REAL 장치를 사용하는 네이티브 코드/LIBRARY 작업하는 경우 내가 조언을 것

관련 문제