마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오에서 .so파일을 추가하여 사용하고 싶습니다.

0 추천
안녕하세요.

안드로이드에 갓 입문한 초보자입니다.

안드로이드 스튜디오에서 외부 라이브러리인 .so파일을 importing시켜서 사용하는 방법을 자세하게 알고 싶습니다.

가능하시다면 원격으로 정중하게 부탁드립니다...
쿠키오 (120 포인트) 님이 2015년 7월 1일 질문

4개의 답변

0 추천
뭘 정중하게 원격으로? 정신이 나가셨나보네영~
익명사용자 님이 2015년 7월 1일 답변
욕할건 없지 않나?;;
0 추천

저도 이것때문에 고생을 좀했는데요...

build.gradle에  아래에 네모칸 부분을 추가 해주시구요 from 에 초록색글씨는 질문자님에 프로젝트에 맞는 구조에 so파일들이 위치한 경로를 적어주시면됩니다.

 


task copyNativeLibs(type: Copy) {
    from(new File('libs/')) { include '**/*.so' }
    into new File('src/main/jniLibs')
}

tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }

//clean.dependsOn 'cleanCopyNativeLibs'
tasks.withType(com.android.build.gradle.tasks.PackageApplication) {
    pkgTask -> pkgTask.jniFolders = new HashSet<File>()
        pkgTask.jniFolders.add(new File('src/main/jniLibs/'))
}

 

저는 삼성 libspen23에   .so 파일들을 읽는 것 했었는데요

프로젝트 에l ibs 폴더 안에 armeabi 폴더 안에 .so파일들 이 있었습니다.

이걸 위에 gradle이 빌드할때 저 파일들을 jni형식으로 읽는 건지는 잘 모르겠습니다만.(제가 C는 해본적이 없어서)

java가 읽을수 있는 jni 형식으로 변환하여 src/mian/jniLibs 폴더로 컴파일된 .so파일들이 들어 가더라구요

jniLibs 폴더는 생성안해주셔도 task copyNativeLibs 여기 메소드 같은곳에서 폴더를 생성해줍니다.

그리고 꼭 src/mian/안에 컴파일된 .so 파일이 있어야 읽을수 있는것 같습니다.

 


한방에끝내요 (160 포인트) 님이 2015년 7월 1일 답변
한방에끝내요님이 2015년 7월 1일 수정
0 추천
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ원격 졸라웃겨 ㅋㅋ
익명사용자 님이 2016년 12월 8일 답변
0 추천
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ개발자들은 싸우면서 성장한다
익명의 개초보자 님이 2018년 7월 19일 답변
...