天天看點

apktool高版本産生compileSdkVersion等錯誤

No resource identifier産生compileSdkVersion等錯誤

自動反編譯工具引發了一個錯誤:

No resource identifier found for attribute ‘compileSdkVersion’ in package ‘android’

No resource identifier found for attribute ‘compileSdkVersionCodename’ in package ‘android’

其實這是 apk高版本去編譯後的問題。

我們來使用apktool多個版本去編譯後檢視 AndroidManifest.xml 檔案發現沒問題,但是再反編譯出來的會多出 android:compileSdkVersion=“23” 和 android:compileSdkVersionCodename=“6.0-2438415” 屬性,如果是反編譯的使用者使用還會報錯,剛好今天是新的筆記本,新的環境反而會覺得更有問題了,然後檢查了build、buildtools、androidsdk、jdk等等的版本,都是正常的,比對都是OK的,

最後看了下build後的 AndroidManifest.xml 檔案,都是亂碼,這是肯定的。

apktool高版本産生compileSdkVersion等錯誤

用自己編寫的DuXML解下亂碼,可以看到格式是如下的:

apktool高版本産生compileSdkVersion等錯誤

無法向下相容,這樣會很蛋疼,換成同個版本也會有問題,這樣的話隻能去看下引用的流程,這樣的話,隻能去看下安卓的源碼了,compileSdkVersion和 buildtools都是高版本的,最低是23。

是以最後解決的辦法就比較簡單,對應的dx、apt 等都換成高版本即可解決了。