exception in thread "main"brut.androlib.AndrdolibException: Counld not decode arse file

2568 단어
최근에 매우 징그러운 문제에 부딪혔다.
1 오류 로그:
Exception in thread "main" brut.androlib.AndrolibException: **Could not decode arsc file**
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
    at brut.androlib.Androlib.getResTable(Androlib.java:50)
    at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
    at brut.apktool.Main.cmdDecode(Main.java:146)
    at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
    at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
    at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)

2 원래는 apktool인 줄 알았어요.jar의 문제?
나중에 stackoverflow에서 찾아봤는데,
	
SO THIS IS MY QUESTION :

"What are the building requirements (on Eclypse) to permit an app to be decompiled by Apktool ?"

I did some tests and couldn't find any rules... For example, i built an empty app (i just created it and exported it the project to an apk file), the building options were :

Minimum : API 14, Android 4.0

Targeting : API 14, Android 4.0

Compile With : API 14, Android 4.0

And i couldn't decompiled the apk... Anyway, i can't decompiled ANY of my apps ! What do i have to change in the building options? I did my tests on Apktool 1.4.3 and 2.0.0 Also, proguard isn't activated. This link says that it could have problem for building versions upper than 21.1.1 but that it was fixed in ApkTool 2.0.0... https://code.google.com/p/android-apktool/issues/detail?id=680

그리고 apktool을 업데이트했습니다.jar는 안 돼요. 그런데 문제를 찾았어요.
원래는 내가adbmanager를 사용하여 업데이트한 후에 업데이트된 최신 버전이기 때문이다. 5.1.1 API22 원래는 Eclispe가 APK를 컴파일할 때build-tools/22.0.1 아래의jar 패키지를 자동으로 호출하여 새로운 암호화 방안을 채택하여 Apktool을 만들었을 것이다.jar는 컴파일할 수 없습니다.
결국 Apktool입니다.jar에 업데이트 문제가 없습니다.
솔루션:
간단합니다. 22.0.1을 삭제하는 것입니다. 왜냐하면android 이후 최신 버전은 스튜디오만 지원하고 ADT를 업데이트하지 않기 때문입니다.그러니까 나중에 보내주시면 스튜디오를 사용하세요.!
참조 웹 주소:
stackoverflow 참조 사이트

좋은 웹페이지 즐겨찾기