pxb1988 / dex2jar

Tools to work with android .dex and java .class files
Apache License 2.0
12.28k stars 2.1k forks source link

Crash while dex2jar lineageos16 framework.jar #311

Closed bladetools closed 2 years ago

bladetools commented 5 years ago

This file is generated by dex2jar

Please report this file to one of following link if possible (any one). https://sourceforge.net/p/dex2jar/tickets/ https://bitbucket.org/pxb1988/dex2jar/issues https://github.com/pxb1988/dex2jar/issues dex2jar@googlegroups.com

There are 3 methods fail to translate. 2019-09-26 09:44:08 UTC version: [dex-reader-2.1-SNAPSHOT, dex-reader-api-2.1-SNAPSHOT, dex-ir-2.1-SNAPSHOT, d2j-smali-2.1-SNAPSHOT, d2j-base-cmd-2.1-SNAPSHOT, dex-tools-2.1-SNAPSHOT, dex-translator-2.1-SNAPSHOT] cmdline: [framework.jar] env: java.specification.version: 11 java.class.path: .:../Tools/dex2jar/lib/ST4-4.0.8.jar:../Tools/dex2jar/lib/antlr-3.5.2.jar:../Tools/dex2jar/lib/antlr-runtime-3.5.2.jar:../Tools/dex2jar/lib/antlr4-4.5.jar:../Tools/dex2jar/lib/antlr4-runtime-4.5.jar:../Tools/dex2jar/lib/asm-debug-all-5.0.3.jar:../Tools/dex2jar/lib/d2j-base-cmd-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/d2j-jasmin-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/d2j-smali-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-ir-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-reader-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-reader-api-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-tools-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-translator-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dex-writer-2.1-SNAPSHOT.jar:../Tools/dex2jar/lib/dx-23.0.0.jar:../Tools/dex2jar/lib/org.abego.treelayout.core-1.0.1.jar java.vm.vendor: Debian java.vendor.url: https://tracker.debian.org/openjdk-11 java.vm.specification.version: 11 java.specification.vendor: Oracle Corporation java.version.date: 2019-07-16 java.home: /usr/lib/jvm/java-11-openjdk-amd64 java.vm.compressedOopsMode: 32-bit java.specification.name: Java Platform API Specification java.vm.specification.vendor: Oracle Corporation java.awt.graphicsenv: sun.awt.X11GraphicsEnvironment java.runtime.version: 11.0.4+11-post-Debian-1deb10u1 java.runtime.name: OpenJDK Runtime Environment java.vm.name: OpenJDK 64-Bit Server VM java.vendor.url.bug: https://bugs.debian.org/openjdk-11 java.io.tmpdir: /tmp java.version: 11.0.4 java.vm.specification.name: Java Virtual Machine Specification java.awt.printerjob: sun.print.PSPrinterJob java.library.path: /usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib java.vendor: Debian java.vm.info: mixed mode java.vm.version: 11.0.4+11-post-Debian-1deb10u1 java.class.version: 55.0

================= 0 =================== Landroid/widget/RemoteViews$ViewContentNavigation;.apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V java.lang.ClassCastException: class com.googlecode.dex2jar.ir.expr.InvokePolymorphicExpr cannot be cast to class com.googlecode.dex2jar.ir.expr.InvokeExpr (com.googlecode.dex2jar.ir.expr.InvokePolymorphicExpr and com.googlecode.dex2jar.ir.expr.InvokeExpr are in unnamed module of loader 'app') at com.googlecode.dex2jar.ir.ts.NewTransformer.findInvokeExpr(NewTransformer.java:361) at com.googlecode.dex2jar.ir.ts.NewTransformer.replaceAST(NewTransformer.java:98) at com.googlecode.dex2jar.ir.ts.NewTransformer.transform(NewTransformer.java:68) at com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:150) at com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:442) at com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:40) at com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:132) at com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:575) at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:434) at com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:450) at com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:175) at com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:275) at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:112) at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:290) at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:33)

.method public apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V .catch Ljava/lang/Throwable; { :L0 .. :L3 } :L4 .registers 6 iget p2, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->viewId:I invoke-virtual { p1, p2 }, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object p1 if-nez p1, :L0 return-void :L0 iget-object p2, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->this$0:Landroid/widget/RemoteViews; iget-boolean p3, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->mNext:Z if-eqz p3, :L1 const-string/jumbo p3, "showNext" goto :L2 :L1 const-string/jumbo p3, "showPrevious" :L2 const/4 v0, 0 const/4 v1, 0 invoke-static { p2, p1, p3, v0, v1 }, Landroid/widget/RemoteViews;->access$400(Landroid/widget/RemoteViews;Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle; move-result-object p2 invoke-polymorphic { p2, p1 }, Ljava/lang/invoke/MethodHandle;->invoke([Ljava/lang/Object;)Ljava/lang/Object;, (Landroid/view/View;)V :L3 nop return-void :L4 move-exception p1 new-instance p2, Landroid/widget/RemoteViews$ActionException; invoke-direct { p2, p1 }, Landroid/widget/RemoteViews$ActionException;->(Ljava/lang/Throwable;)V throw p2 .end method

================= 1 =================== Landroid/widget/RemoteViews$ReflectionAction;.apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V java.lang.ClassCastException: class com.googlecode.dex2jar.ir.expr.InvokePolymorphicExpr cannot be cast to class com.googlecode.dex2jar.ir.expr.InvokeExpr (com.googlecode.dex2jar.ir.expr.InvokePolymorphicExpr and com.googlecode.dex2jar.ir.expr.InvokeExpr are in unnamed module of loader 'app') at com.googlecode.dex2jar.ir.ts.NewTransformer.findInvokeExpr(NewTransformer.java:361) at com.googlecode.dex2jar.ir.ts.NewTransformer.replaceAST(NewTransformer.java:98) at com.googlecode.dex2jar.ir.ts.NewTransformer.transform(NewTransformer.java:68) at com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:150) at com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:442) at com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:40) at com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:132) at com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:575) at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:434) at com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:450) at com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:175) at com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:275) at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:112) at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:290) at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:33)

.method public apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V .catch Ljava/lang/Throwable; { :L1 .. :L2 } :L3 .registers 6 iget p2, p0, Landroid/widget/RemoteViews$ReflectionAction;->viewId:I invoke-virtual { p1, p2 }, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object p1 if-nez p1, :L0 return-void :L0 invoke-direct { p0 }, Landroid/widget/RemoteViews$ReflectionAction;->getParameterType()Ljava/lang/Class; move-result-object p2 if-eqz p2, :L4 :L1 iget-object p3, p0, Landroid/widget/RemoteViews$ReflectionAction;->this$0:Landroid/widget/RemoteViews; iget-object v0, p0, Landroid/widget/RemoteViews$ReflectionAction;->methodName:Ljava/lang/String; const/4 v1, 0 invoke-static { p3, p1, v0, p2, v1 }, Landroid/widget/RemoteViews;->access$400(Landroid/widget/RemoteViews;Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle; move-result-object p2 iget-object p3, p0, Landroid/widget/RemoteViews$ReflectionAction;->value:Ljava/lang/Object; invoke-polymorphic { p2, p1, p3 }, Ljava/lang/invoke/MethodHandle;->invoke([Ljava/lang/Object;)Ljava/lang/Object;, (Landroid/view/View;Ljava/lang/Object;)V :L2 nop return-void :L3 move-exception p1 new-instance p2, Landroid/widget/RemoteViews$ActionException; invoke-direct { p2, p1 }, Landroid/widget/RemoteViews$ActionException;->(Ljava/lang/Throwable;)V throw p2 :L4 new-instance p1, Landroid/widget/RemoteViews$ActionException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct { p2 }, Ljava/lang/StringBuilder;->()V const-string p3, "bad type: " invoke-virtual { p2, p3 }, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget p3, p0, Landroid/widget/RemoteViews$ReflectionAction;->type:I invoke-virtual { p2, p3 }, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual { p2 }, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct { p1, p2 }, Landroid/widget/RemoteViews$ActionException;->(Ljava/lang/String;)V throw p1 .end method

================= 2 =================== Landroid/text/util/Rfc822Tokenizer;.findTokenStart(Ljava/lang/CharSequence;I)I java.lang.RuntimeException: fail exe a11 = a9 at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.exec(BaseAnalyze.java:92) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.exec(BaseAnalyze.java:31) at com.googlecode.dex2jar.ir.ts.Cfg.dfs(Cfg.java:255) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.analyze0(BaseAnalyze.java:75) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.analyze(BaseAnalyze.java:69) at com.googlecode.dex2jar.ir.ts.Ir2JRegAssignTransformer.transform(Ir2JRegAssignTransformer.java:182) at com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:167) at com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:442) at com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:40) at com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:132) at com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:575) at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:434) at com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:450) at com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:175) at com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:275) at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:112) at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:290) at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:33) Caused by: java.lang.NullPointerException at com.googlecode.dex2jar.ir.ts.an.SimpleLiveAnalyze.onUseLocal(SimpleLiveAnalyze.java:89) at com.googlecode.dex2jar.ir.ts.an.SimpleLiveAnalyze.onUseLocal(SimpleLiveAnalyze.java:27) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.onUse(BaseAnalyze.java:166) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.onUse(BaseAnalyze.java:31) at com.googlecode.dex2jar.ir.ts.Cfg.travel(Cfg.java:331) at com.googlecode.dex2jar.ir.ts.Cfg.travel(Cfg.java:387) at com.googlecode.dex2jar.ir.ts.an.BaseAnalyze.exec(BaseAnalyze.java:90) ... 17 more

.method public findTokenStart(Ljava/lang/CharSequence;I)I .registers 7 nop nop const/4 v0, 0 :L0 move v1, v0 :L1 if-ge v0, p2, :L4 invoke-virtual { p0, p1, v0 }, Landroid/text/util/Rfc822Tokenizer;->findTokenEnd(Ljava/lang/CharSequence;I)I move-result v0 if-ge v0, p2, :L1 add-int/lit8 v0, v0, 1 :L2 if-ge v0, p2, :L3 invoke-interface { p1, v0 }, Ljava/lang/CharSequence;->charAt(I)C move-result v2 const/16 v3, 32 if-ne v2, v3, :L3 add-int/lit8 v0, v0, 1 goto :L2 :L3 if-ge v0, p2, :L1 goto :L0 :L4 return v1 .end method

baaqil commented 4 years ago

i get same issue when using d2j tools v 2.1 snapshoot.exactly same error.same file..any suggest?

nick-botticelli commented 3 years ago

I faced this same issue and I believe that I fixed it. I'll try and keep this issue updated, but I filed a pull request on ThexXTURBOXx's fork since they seem to also be fixing other bugs and revamping things better than I can on my fork. You can find it here ThexXTURBOXx/dex2jar#7

nick-botticelli commented 3 years ago

My pull request ThexXTURBOXx/dex2jar#7 was just merged, so try using that fork. Hopefully some day the changes will eventually be merged here.

pxb1988 commented 2 years ago

the dex works on latest release https://github.com/pxb1988/dex2jar/releases please have a try.