2014-10-07 3 views
3

하나의 모듈 (ndk{moduleName})을 선택하여 build.gradle을 수정하는 방법을 알고 싶습니다. *.c 개 파일을 선택했습니다. 아무도 이것을 전에 해본 적이 있습니까? 이것은 가능한가? 모두 들어Android 다중 모듈 [gradle]

public ClassA { 
    static { 
     System.loadLibrary("ClassAlib") 
    } 

    public native int funcA(); 
} 

public ClassB { 
    static { 
     System.loadLibrary("ClassBlib") 
    } 

    public native int funcA(); 
} 

내가 JNI 헤더를 생성 SRC/JNI 폴더 안에 파일이 .c 생성 :

하자 내가이 개 수업을 말한다. build.gradle 파일을 수정하여 두 개의 libs를 하나의 라이브러리로 만드는 방법은 무엇입니까?

+0

, 당신이 가지고있는 유일한 솔루션은 다음, 자바 lib 디렉토리 하위 프로젝트를 만들려면 해당 lib 디렉토리를 추가하는 것을 나에게 보인다 애플 리케이션 의존성,하지만 난 너무 잔인하다고 생각합니다. –

+0

Gradle 소스를 게시 하시겠습니까? 또는 적어도 JNI 모듈을 생성하는 데 사용하는 Gradle 기능을 볼 수 있도록 현재 수행중인 작업을 보여주는 단순화 된 버전입니다. – Jason

+0

이것들을 여러 개의 라이브러리로 생각하는 것은 오해입니다. 결국 여러 개의 .c 및 .h 파일과 하나의 main.c 및 *. *. * _ natives_MainJNI.h로 끝나고 다른 모든 파일이 포함됩니다. 어쩌면 완벽한 해결책은 아니지만 JNI 관점에서 정적 블록이되어 모듈을 분리했는지는 중요하지 않습니다. 한 번만로드 될 수 있기 때문에 System.loadLibrary가있는 동일한 라이브러리를 여러 Java 클래스로로드 할 수 없습니다. –

답변

0

난 당신이 build.grade 두 가지 옵션을 사용할 수 있습니다 생각 : 지금

sourceSets { 
    main { 
     jni.srcDirs = [<location for each module>] 
     jniLibs.srcDir '<location for so file>' 
    } 
}