2 xiaoyaovsxin xiaoyaovsxin 于 2013.01.17 17:02 提问

android在合并浏览器Browser.odex的时候出错

system/framework下的文件已全部pull出,报错如下:

Error while disassembling method Lcom/android/browser/BrowserSettings;->syncSett
ing(Landroid/webkit/WebSettings;)V. Continuing.
org.jf.dexlib.Code.Analysis.ValidationException: Could not resolve the method in
 class Landroid/webkit/WebSettings; at index 94
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(
MethodAnalyzer.java:3644)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodA
nalyzer.java:1106)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.jav
a:213)
        at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMetho
dItems(MethodDefinition.java:389)
        at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefini
tion.java:311)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:132)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition
.java:338)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefi
nition.java:294)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:116)
        at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:186)

                at org.jf.baksmali.main.main(main.java:308)
opcode: invoke-virtual-quick
CodeAddress: 4
Method: Lcom/android/browser/BrowserSettings;->syncSetting(Landroid/webkit/WebSe
ttings;)V

Error while disassembling method Lcom/android/browser/BrowserSettings;->syncStat
icSettings(Landroid/webkit/WebSettings;)V. Continuing.
org.jf.dexlib.Code.Analysis.ValidationException: Could not resolve the method in
 class Landroid/webkit/WebSettings; at index 82
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(
MethodAnalyzer.java:3644)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodA
nalyzer.java:1106)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.jav
a:213)
        at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMetho
dItems(MethodDefinition.java:389)
        at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefini
tion.java:311)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:132)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition
.java:338)

        at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefi
nition.java:294)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:116)
        at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:186)
        at org.jf.baksmali.main.main(main.java:308)
opcode: invoke-virtual-quick
CodeAddress: 4
Method: Lcom/android/browser/BrowserSettings;->syncStaticSettings(Landroid/webki
t/WebSettings;)V

Error while disassembling method Lcom/android/browser/BrowserSettings;->toggleDe
sktopUseragent(Landroid/webkit/WebView;)V. Continuing.
org.jf.dexlib.Code.Analysis.ValidationException: Could not resolve the method in
 class Landroid/webkit/WebSettings; at index 130
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(
MethodAnalyzer.java:3644)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodA
nalyzer.java:1106)
        at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.jav
a:213)
        at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMetho
dItems(MethodDefinition.java:389)
        at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefini
        tion.java:311)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:132)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition
.java:338)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDef
inition.java:310)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:117)
        at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:186)
        at org.jf.baksmali.main.main(main.java:308)
opcode: invoke-virtual-quick
CodeAddress: 41
Method: Lcom/android/browser/BrowserSettings;->toggleDesktopUseragent(Landroid/w
ebkit/WebView;)V

哪位大侠晓得吗?

1个回答

cytown
cytown   2013.01.18 10:51

使用backsmali去反编译odex的代码的话要指定framework里面的所有jar的,具体可以看看文档。

http://code.google.com/p/smali/wiki/DeodexInstructions

xiaoyaovsxin
xiaoyaovsxin 没有漏,都有的
大约 5 年之前 回复
cytown
cytown 此外,jf在圣诞节前后修复了一个相关的bug,你检查下是否有更新的版本下了,也可以考虑下开发版。
大约 5 年之前 回复
cytown
cytown 检查下是否漏了些
大约 5 年之前 回复
xiaoyaovsxin
xiaoyaovsxin framework里面的所有jar都放进去了。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!