2017-12-04 15 views
0

apkt 파일을 사용하여 아래 표시된 명령을 사용하여 apk 파일을 디 컴파일하려하지만 Android 매니페스트를 디코딩 할 수없고 예외가 발생합니다. 나는 다른 애플 리케이션으로 그것을 테스트하고 동일한 예외를 항상 얻는다. 내 jre lib 경로 (즉,/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext /)에 xmlpull-1.1.3.1, xmlpull_1_0_5 및 kxml2의 항아리가 있습니다. CLASSPATH의 경로. 이 문제를 어떻게 해결할 수 있습니까? xmlpull이 임의의 팩토리 클래스를로드 할 수 없습니다.

apktool d uk.co.houseoffraser.apk 
I : 자원 디코딩의 AndroidManifest.xml :로드 리소스 테이블 ...
I : uk.co.houseoffraser.apk
I에 Apktool 2.3.0을 사용. .. 스레드 "주요"brut.androlib.AndrolibException에서
예외 : brut.androlib.res.d에서 brut.androlib.res.decoder.XmlPullStreamDecoder.decode (XmlPullStreamDecoder.java:145) 에서 XML 를 디코딩 할 수 없습니다 ecoder.XmlPullStreamDecoder.decodeManifest brut.androlib.res.decoder.ResFileDecoder.decodeManifest (ResFileDecoder.java:140)에서 (XmlPullStreamDecoder.java:153) brut.androlib.res.AndrolibResources.decodeManifestWithResources에서 (AndrolibResources.java:209) brut.apktool.Main.cmdDecode에서 brut.androlib.ApkDecoder.decode (ApkDecoder.java:113) 에서 brut.androlib.Androlib.decodeManifestWithResources (Androlib.java:137) (Main.java:160) 에서 에서 brut.apktool.Main.main (Main.java:72)
발생 원인 : org.xmlpull.v1.XmlPullParserException : 팩토리 클래스를로드 할 수 없습니다 (작거나 전체 기본 구현을 포함하여). 중첩 예외이다 org.xmlpull.v1.XmlPullParserFactory.newInstance (XmlPullParserFactory.java:76) 에서 org.xmlpull.v1.XmlPullParserFactory.newInstance (XmlPullParserFactory.java:225) 에서 org.kxml2.io.XmlReader 에서 org.xmlpull.v1.wrapper.XmlPullWrapperFactory. org.xmlpull.v1.wrapper.XmlPullWrapperFactory.newInstance (XmlPullWrapperFactory.java:29)에서 (XmlPullWrapperFactory.java:52) brut.androlib.res.decoder.XmlPullStreamDecoder.decode에서 (XmlPullStreamDecoder.java:49) ... 7 더

답변

0

드디어 xmlpull 항아리의 예는, xmlpull-1.1.3.1.jar이 xmlpull_1_0_5.jar 기본 XML 파서는 것을 발견 이는 CLASSPATH에 KXML2 파서 만있는 경우에도 항상 사용됩니다. jre 확장 라이브러리 (예 :/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext /)에서 xmlpull 구문 분석기를 제거하면 문제가 해결됩니다. CLASSPATH에 다른 xml 파서가있는 경우에도 KXML2 jar 파일 만 jre 라이브러리에있는 한 작동합니다.