2014-09-02 3 views
3

코드 및 리소스 (ResourceBundle)가 포함 된 jar 파일이 있습니다.
나는 그 항아리가있는 안드로이드 스튜디오에서 간단한 프로젝트를 만들고, 컴파일하고, .apk을 추출하고, classes.dex을 두 번째 프로젝트에 복사했습니다. 또한 추출한 .apk에서 두 번째 프로젝트로 리소스를 복사했습니다.dex 파일에서 메소드를 실행할 때 리소스를 읽을 수 없습니다.

두 번째 프로젝트에서 .dex 파일의 클래스를로드했습니다.

Caused by: java.util.MissingResourceException: Can't find resource for bundle ... 

라인 실패 :

ResourceBundle resource = ResourceBundle.getBundle("xx.yy.zz.resources.aa", Locale.getDefault()); 

을 그것을 찾을 수 없습니다 리소스를 읽어합니다 (덱스 파일에서) 그 클래스의 메소드를 실행하는 경우 , 그것은 예외를 슬로우 방금 실행 한 경우 :

ResourceBundle resource = ResourceBundle.getBundle("xx.yy.zz.resources.aa", Locale.getDefault()); 

두 번째 프로젝트 (덱스에서 가져온 것이 아닙니다)에서 실행됩니다. 제대로 작동합니다. 리소스를 얻습니다.

아무 생각 없나요? 마지막으로 작동

감사

답변

0

은 공유하기를 원해요 : 를 대신 classes.dex이 클래스 로더의 .apk 파일을 사용하여 사용하는. 내부의 덱스 (dex)에서 함수를 읽고 그로부터 리소스를 얻는 방법을 알고 있습니다.

관련 문제