2

Android 용 SDK를 만들 계획이었습니다. 즉, 클래스 파일과 리소스 (레이아웃)를 필요로하는 다른 응용 프로그램과 공유한다는 의미입니다. 내 애플리케이션을 JAR로 내보내는 경우 리소스 파일과 R.class가 포함되지 않습니다. 현재 안드로이드는 JAR을 통해 리소스 파일을 패키징하는 것을 지원하지 않지만 그물을 검색하여 소스 파일을 사용하여 리소스 파일을 컴파일하면 다른 애플리케이션의 리소스에 액세스 할 수 있음을 알 수 있습니다.Android : JAR에 리소스 파일을 추가하십시오.

그래서 나는 다음과 같은 방법으로 그것을 행한 이유 :

  1. 복사 모두가 내 소스 폴더에 폴더의 컨텐츠를 입술

    • SRC -> com.mypackege -> RES- -> 여기에 내 res 폴더 넣기
    • 마침내 내 src 폴더 모양

    • SRC

      com.mypackage

       >myfile.java 
          drawable-hdpi 
          drawable-ldpi 
          drawable-mdpi 
          drawable-xhdpi 
          com.mypackage.drawable 
          com.mypackage.layout 
          com.mypackage.menu 
          com.mypackage.values 
      
  2. 와 나는 내 빈에서 자원 및 r.class을 포함한 모든 클래스 파일을 가지고 내 프로젝트를 빌드

  3. jar -cvf mysample.jar com/mypackage/*

  4. 에 의해 jar 파일을 수동으로 생성합니다.
  5. 최종 항아리에는 측면에있는 내 프로젝트의 모든 클래스와 리소스가 포함되어 있습니다. mypackage.

는 여기 내가 자산 폴더에 JAR를 넣어 testapp 말을 다른 응용 프로그램으로 mysample.jar를 추가 (때문에 레이아웃)과 경로를 구축하기 위해 추가 할 수 있습니다. 또한 빌드 경로를 구성합니다.

이 응용 프로그램에서는 해당 JAR에서 레이아웃을로드하는 데 필요한 mysample.jar에서 myfile.class을 호출합니다.

문제는이 JAR에서 자원 그것은 단지 현재 프로젝트 고해상도 폴더에있는 리소스를 참조 파일 및 NULL pointer Exception

하지만하지만 JAR 파일에서 R.java를 호출 볼 수 없습니다 여기에있다. 광고 또한 xmlns : custom = "http://schemas.android.com/apk/res-auto"를 내 매니 페스트 파일에 넣으려고했으나 작동하지 않습니다. 정확히이 문제를 해결하기 위해 노력하겠습니다. 자원 매핑 문제 일 수 있습니다. 이 문제를 해결할 생각이 있습니까?

답변

1

jar에 리소스를 저장할 수 없습니다. 그것은 가능하지만 까다 롭습니다. 안드로이드는 안드로이드 라이브러리 만 제공합니다. 그렇지 않으면 컴파일 된 소스 코드와 자원을 별도로 사용할 수 있습니다. (라이브러리에 리소스 ID를 제공하여)

+0

안드로이드 라이브러리 기능을 통해 내 다른 리소스와 리소스를 공유 할 수있는 방법 –

+0

@ Mr.Cool http://stackoverflow.com/questions/7973822/how-to-convert-an-android-library-project-to-an-external-jar 여기를보세요 – Taras

관련 문제