pxb1988 / dex2jar

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

converting dex to jar, hits an error: #535

Open convivae opened 2 years ago

convivae commented 2 years ago

the content of summary.txt as follows:

#This file is generated by dex2jar
Please report this file to https://github.com/pxb1988/dex2jar/issues if possible.

There are 2 methods fail to translate.
2022-04-06 06:45:08 UTC
version: [dex-reader-2.1, dex-reader-api-2.1, dex-ir-2.1, d2j-smali-2.1, d2j-base-cmd-2.1, dex-tools-2.1, dex-translator-2.1]
cmdline: [classes3.dex]
env:
java.specification.version: 11
java.class.path: .:/opt/dex2jar/lib/antlr-3.5.2.jar:/opt/dex2jar/lib/antlr4-4.5.jar:/opt/dex2jar/lib/antlr4-runtime-4.5.jar:/opt/dex2jar/lib/antlr-runtime-3.5.2.jar:/opt/dex2jar/lib/asm-debug-all-5.0.3.jar:/opt/dex2jar/lib/d2j-base-cmd-2.1.jar:/opt/dex2jar/lib/d2j-jasmin-2.1.jar:/opt/dex2jar/lib/d2j-smali-2.1.jar:/opt/dex2jar/lib/dex-ir-2.1.jar:/opt/dex2jar/lib/dex-reader-2.1.jar:/opt/dex2jar/lib/dex-reader-api-2.1.jar:/opt/dex2jar/lib/dex-tools-2.1.jar:/opt/dex2jar/lib/dex-translator-2.1.jar:/opt/dex2jar/lib/dex-writer-2.1.jar:/opt/dex2jar/lib/dx-27.0.3.jar:/opt/dex2jar/lib/org.abego.treelayout.core-1.0.1.jar:/opt/dex2jar/lib/ST4-4.0.8.jar
java.vm.vendor: Oracle Corporation
java.vendor.url: https://openjdk.java.net/
java.vm.specification.version: 11
java.specification.vendor: Oracle Corporation
java.version.date: 2022-04-19
java.home: /usr/lib/jvm/java-11-openjdk
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.15+3
java.runtime.name: OpenJDK Runtime Environment
java.vm.name: OpenJDK 64-Bit Server VM
java.vendor.url.bug: https://bugreport.java.com/bugreport/
java.io.tmpdir: /tmp
java.version: 11.0.15
java.vm.specification.name: Java Virtual Machine Specification
java.awt.printerjob: sun.print.PSPrinterJob
java.library.path: /usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
java.vm.info: mixed mode
java.vendor: Oracle Corporation
java.vm.version: 11.0.15+3
java.class.version: 55.0

================= 0 ===================
Landroid/widget/RemoteViews$BaseReflectionAction;.apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$InteractionHandler;Landroid/widget/RemoteViews$ColorResources;)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:452)
    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:596)
    at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:444)
    at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:357)
    at com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:460)
    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 final apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$InteractionHandler;Landroid/widget/RemoteViews$ColorResources;)V
  .catchall { :L1 .. :L2 } :L3
  .registers 11
    iget v0, p0, Landroid/widget/RemoteViews$BaseReflectionAction;->viewId:I
    invoke-virtual { p1, v0 }, Landroid/view/View;->findViewById(I)Landroid/view/View;
    move-result-object v0
    if-nez v0, :L0
    return-void
  :L0
    iget v1, p0, Landroid/widget/RemoteViews$BaseReflectionAction;->type:I
    invoke-static { v1 }, Landroid/widget/RemoteViews;->access$900(I)Ljava/lang/Class;
    move-result-object v1
    if-eqz v1, :L4
    invoke-virtual { p0, v0 }, Landroid/widget/RemoteViews$BaseReflectionAction;->getParameterValue(Landroid/view/View;)Ljava/lang/Object;
    move-result-object v2
  :L1
    iget-object v3, p0, Landroid/widget/RemoteViews$BaseReflectionAction;->this$0:Landroid/widget/RemoteViews;
    iget-object v4, p0, Landroid/widget/RemoteViews$BaseReflectionAction;->methodName:Ljava/lang/String;
    const/4 v5, 0
    invoke-static { v3, v0, v4, v1, v5 }, Landroid/widget/RemoteViews;->access$700(Landroid/widget/RemoteViews;Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
    move-result-object v3
    invoke-polymorphic { v3, v0, v2 }, 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 v3
    new-instance v4, Landroid/widget/RemoteViews$ActionException;
    invoke-direct { v4, v3 }, Landroid/widget/RemoteViews$ActionException;-><init>(Ljava/lang/Throwable;)V
    throw v4
  :L4
    new-instance v2, Landroid/widget/RemoteViews$ActionException;
    new-instance v3, Ljava/lang/StringBuilder;
    invoke-direct { v3 }, Ljava/lang/StringBuilder;-><init>()V
    const-string v4, "bad type: "
    invoke-virtual { v3, v4 }, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    iget v4, p0, Landroid/widget/RemoteViews$BaseReflectionAction;->type:I
    invoke-virtual { v3, v4 }, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual { v3 }, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v3
    invoke-direct { v2, v3 }, Landroid/widget/RemoteViews$ActionException;-><init>(Ljava/lang/String;)V
    throw v2
.end method

================= 1 ===================
Landroid/widget/RemoteViews$ViewContentNavigation;.apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$InteractionHandler;Landroid/widget/RemoteViews$ColorResources;)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:452)
    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:596)
    at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:444)
    at com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:357)
    at com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:460)
    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$InteractionHandler;Landroid/widget/RemoteViews$ColorResources;)V
  .catchall { :L0 .. :L3 } :L4
  .registers 10
    iget v0, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->viewId:I
    invoke-virtual { p1, v0 }, Landroid/view/View;->findViewById(I)Landroid/view/View;
    move-result-object v0
    if-nez v0, :L0
    return-void
  :L0
    iget-object v1, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->this$0:Landroid/widget/RemoteViews;
    iget-boolean v2, p0, Landroid/widget/RemoteViews$ViewContentNavigation;->mNext:Z
    if-eqz v2, :L1
    const-string/jumbo v2, "showNext"
    goto :L2
  :L1
    const-string/jumbo v2, "showPrevious"
  :L2
    const/4 v3, 0
    const/4 v4, 0
    invoke-static { v1, v0, v2, v3, v4 }, Landroid/widget/RemoteViews;->access$700(Landroid/widget/RemoteViews;Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
    move-result-object v1
    invoke-polymorphic { v1, v0 }, Ljava/lang/invoke/MethodHandle;->invoke([Ljava/lang/Object;)Ljava/lang/Object;, (Landroid/view/View;)V
  :L3
    nop
    return-void
  :L4
    move-exception v1
    new-instance v2, Landroid/widget/RemoteViews$ActionException;
    invoke-direct { v2, v1 }, Landroid/widget/RemoteViews$ActionException;-><init>(Ljava/lang/Throwable;)V
    throw v2
.end method
rvillarreal-r7 commented 2 years ago

Having an identical issue as well. I can post logs here if needed.

Edit: Ran it with the Turbo fork and it worked great!