反編譯錯誤
⑴ 反編譯成功,不做任何修改回編譯失敗,出現這樣的提示,如圖,哪位高
反編譯後的文件夾內丟失apktool.yml文件!
這個文件是APKTOOL工具回編譯時必要的文件,在反編譯APK時會自動生成,裡麵包含APKTOOL反編譯某個APK文件的相關信息!此文件內容不可包含中文!
格式如下:
java">version:1.4.3
apkFileName:BluetoothFileTransfer_Ad-free_4.80.apk
isFrameworkApk:false
usesFramework:
ids:
-1
第一行代表APKTOOL程序的版本
第二行是APK程序名稱
第三行是說明該APK是不是Framework級的文件
第四行到最後,我不是很清楚,估計是使用Framework的級別吧
如果你回編譯的APK不屬於系統級文件,你可以按照以上內容新建一個apktool.yml文件。不過版本行一定要寫你當前使用的apktool程序的版本!
⑵ 反編譯出來的java文件有錯誤,請問怎麼改
這個反編譯的程序 相當於自己寫的程序的 你這樣包裝改就對了try{File log = new File(System.getProperty("server.root"), file); fw = new FileWriter(log, true); bw = new BufferedWriter(fw); pw = new PrintWriter(bw, true); }catch(IOException){}return;}
⑶ 改之理反編譯失敗是怎麼回事
本帖最後由 7ktest 於 2015-6-19 17:27 編輯
一般是apktool的問題,最簡單的方式是用新版本的apk改之理(裡面的apktool也是新的),apk改之理可以到它的作者網站下載:http://www.popotu.com/popo/apkide.html
現在版本是3.2,也可以3.1, 3.2 都下來試試。
⑷ APK 反編譯失敗 是為啥
1、反編譯=回編譯後分別是
smali目錄 回編譯為 classes.dex 文件
res目錄 回編譯為 resources.arsc 文件
2、回編譯順序
在回編譯時,會先檢查「源」即resources
當你漢化文件,修改出錯了(缺少一個符號也不行),
那麼回編譯會自動跳過編譯res文件夾,直接回編譯smali 。
所以,如果沒有對smali(classes.dex)漢化,那麼建議大家刪掉這個文件夾,
這要會大大加快回編譯速度。
3、出錯問題1
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
這些小小的錯誤都會導致回編時譯檢查出錯。
所以漢化時,注意對校,然後再回編譯。
建議使用一些高級的文本編輯器,支持語法高亮視圖的。
4、出錯問題2
最近發現有些APK文件 反編譯後,就算不漢化直接回編譯,都會出錯。
有可能的原因1,反編譯後XML文件語法中@符號 前面多了"\" (\@ ),
用文本編輯工具 直接替換【\@】為【@】,應該可以解決。
建議使用最新版本的反編譯工具。
5、建議大家使用新版本的APKTool工具,
當然如果新的有問題也可以試試舊的一、系統文件漢化再次強調
1、漢化Settings.apk(系統設置)、MMS.apk(信息)、Phone.apk(電話)、
等等系統文件,一定要先 安裝構架,具體看另個文件
<關於APKTool工具反編譯Settings.apk問題>。
2、系統文件漢化完後不需要簽名,直接替換漢化後的文件,就可以了。
主要是,系統文件放在系統目錄,無需再次讀取簽名獲得許可權,已經是高級了。
二、打包說明
1、通常漢化完回編譯後,會自動生成所有APK內的文件,或者自動生成*.APK文件。
但是建議大家不要直接使用該文件,進了使用替換法,替換掉你漢化後的文件,
如:resources.arsc,如果修改過的圖片,等等…
2、很多人對於APK文件 解壓縮或壓縮 都用「WinRAR」或「好壓」,這里不推薦。
希望大家安裝7-Zip這個壓縮工具,對於zip格式的支持是最好的。而且很方便,
不需要重新關聯apk 直接右鍵打開就行了。替換直接拖拉進去,就OK了一、回編譯出錯問題
(1.提示 strings.xml 最後一行錯誤,檢查是否</string>符號錯誤;
在漢化時,往往會不小心刪掉一些符號,如 "<" ">"符號等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最頂部含中文代碼首行錯誤,編碼格式不對,轉換成 UTF-8;
(3.提示 public.xml 出錯,檢查改動過的 arrays.xml 是否代碼有錯誤的地方;
二、一切能正常但無法回編譯
還有一種情況,apktool最新版本能正常反編譯一個apk文件,在未做任何修改的情況下,無法回編譯。
這是就要注意了,可以嘗試一下用低版本的apktool進行【反編譯】,然後在用高版本的apktoo工具【回編譯】。
這里向大家推薦用 【APKDB】 這個工具,很方便,反編譯時可以選擇apktool的版本。
⑸ 我的反編譯軟體報了個錯誤請高手看下
The member is not loaded or may be hidden e to your visibility settings:會員不裝載或可能是由於你的知名度背景隱藏
額 不明白 你是什麼軟體啊
⑹ 運行反編譯過來的代碼時出現這些錯誤,怎麼辦
變數名標識符非法,改成任意合法標識符即可
⑺ java 代碼反編譯錯誤
換個軟體試試。可能原代碼已加密,你需要能解密的反編譯軟體去編譯。
⑻ JAR文件經過反編譯 得出的代碼輸入eclipse無法運行很多錯誤
反編譯過的jar得到的最終代碼形式和手動敲上去的一樣,至於錯誤的原因,大概的分析下來我覺得至少有這幾種可能,包之間的依賴(其他包的引用,但在你的項目擬不存這個包),另外一種就是語法不全,或是語法混亂,有的反編譯工具就可能會生成錯誤的語法結構.... 至於反編譯工具,還沒用過這個東西,所以暫不討論那些好,那些壞了!
⑼ apk反編譯,回編出錯了
不影響正常運行,只是編譯環境,
compileSdkVersion 告訴 Gradle 用哪個 Android SDK 版本編譯你的應用。使用任何新添加的 API 就需要使用對應 Level 的 Android SDK。
需要強調的是修改 compileSdkVersion 不會改變運行時的行為。當你修改了 compileSdkVersion 的時候,可能會出現新的編譯警告、編譯錯誤,但新的 compileSdkVersion 不會被包含到 APK 中:它純粹只是在編譯的時候使用。(你真的應該修復這些警告,他們的出現一定是有原因的)
因此我們強烈推薦總是使用最新的 SDK 進行編譯。在現有代碼上使用新的編譯檢查可以獲得很多好處,避免新棄用的 API ,並且為使用新的 API 做好准備。
注意,如果使用 Support Library ,那麼使用最新發布的 Support Library 就需要使用最新的 SDK 編譯。例如,要使用 23.1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 23 (大版本號要一致!)。通常,新版的 Support Library 隨著新的系統版本而發布,它為系統新增加的 API 和新特性提供兼容性支持。
解決辦法有兩種(我測試的前提是反編譯的母包是沒有包含這兩個屬性的):
(1)使用apktool 2.3.2版本,因為2.3.3之後版本針對appt和appt2做了修改,最後AndroidManifest.xml裡面不在包含compileSdkVersion和compileSdkVersionCodename
(2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最後發現可以回編譯成功,但是AndroidManifest.xml還是會包含compileSdkVersion和compileSdkVersionCodename。