Closed samchuc closed 7 years ago
After investigating the problem class is (android/support/v4/content/e.class). Procyon cannot decompile it. I can gracefully handle this exception on my end, and display a dialog to skip the file. I'm not sure if that will help. I'll check and see if Procyon has an issue already. https://bitbucket.org/mstrobel/procyon/issues/311/arrayindexoutofboundsexception-1 As for recompiling the app, unless you know what this dependency is and can re-obfuscate it to match the current scheme, extremely unlikely. I've checked other decompilers and they cannot handle this file either. However with the java tools you can at least get the bytecode.
abstract class android.support.v4.content.e<Params, Progress, Result> {
private static final java.util.concurrent.ThreadFactory a;
Signature: Ljava/util/concurrent/ThreadFactory;
private static final java.util.concurrent.BlockingQueue<java.lang.Runnable> b;
Signature: Ljava/util/concurrent/BlockingQueue;
public static final java.util.concurrent.Executor c;
Signature: Ljava/util/concurrent/Executor;
private static android.support.v4.content.e$b g;
Signature: Landroid/support/v4/content/e$b;
private static volatile java.util.concurrent.Executor h;
Signature: Ljava/util/concurrent/Executor;
final android.support.v4.content.e$d<Params, Result> d;
Signature: Landroid/support/v4/content/e$d;
final java.util.concurrent.FutureTask<Result> e;
Signature: Ljava/util/concurrent/FutureTask;
volatile int f;
Signature: I
private final java.util.concurrent.atomic.AtomicBoolean i;
Signature: Ljava/util/concurrent/atomic/AtomicBoolean;
static {};
Signature: ()V
Code:
0: new #7 // class android/support/v4/content/e$1
3: dup
4: invokespecial #46 // Method android/support/v4/content/e$1."<init>":()V
7: putstatic #48 // Field a:Ljava/util/concurrent/ThreadFactory;
10: new #50 // class java/util/concurrent/LinkedBlockingQueue
13: dup
14: bipush 10
16: invokespecial #53 // Method java/util/concurrent/LinkedBlockingQueue."<init>":(I)V
19: putstatic #55 // Field b:Ljava/util/concurrent/BlockingQueue;
22: new #57 // class java/util/concurrent/ThreadPoolExecutor
25: dup
26: iconst_5
27: sipush 128
30: lconst_1
31: getstatic #63 // Field java/util/concurrent/TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
34: getstatic #55 // Field b:Ljava/util/concurrent/BlockingQueue;
37: getstatic #48 // Field a:Ljava/util/concurrent/ThreadFactory;
40: invokespecial #66 // Method java/util/concurrent/ThreadPoolExecutor."<init>":(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
43: astore_0
44: aload_0
45: putstatic #68 // Field c:Ljava/util/concurrent/Executor;
48: aload_0
49: putstatic #70 // Field h:Ljava/util/concurrent/Executor;
52: return
public android.support.v4.content.e();
Signature: ()V
Code:
0: aload_0
1: invokespecial #72 // Method java/lang/Object."<init>":()V
4: aload_0
5: getstatic #74 // Field android/support/v4/content/e$c.a:I
8: putfield #76 // Field f:I 11: aload_0
12: new #78 // class java/util/concurrent/atomic/AtomicBoolean
15: dup
16: invokespecial #79 // Method java/util/concurrent/atomic/AtomicBoolean."<init>":()V
19: putfield #81 // Field i:Ljava/util/concurrent/atomic/AtomicBoolean;
22: aload_0
23: new #9 // class android/support/v4/content/e$2
26: dup
27: aload_0
28: invokespecial #84 // Method android/support/v4/content/e$2."<init>":(Landroid/support/v4/content/e;)V
31: putfield #86 // Field d:Landroid/support/v4/content/e$d;
34: aload_0
35: new #11 // class android/support/v4/content/e$3
38: dup
39: aload_0
40: aload_0
41: getfield #86 // Field d:Landroid/support/v4/content/e$d;
44: invokespecial #89 // Method android/support/v4/content/e$3."<init>":(Landroid/support/v4/content/e;Ljava/util/concurrent/Callable;)V
47: putfield #91 // Field e:Ljava/util/concurrent/FutureTask;
50: return
static java.lang.Object a(android.support.v4.content.e, java.lang.Object);
Signature: (Landroid/support/v4/content/e;Ljava/lang/Object;)Ljava/lang/Object;
Code:
0: aload_0
1: aload_1
2: invokespecial #95 // Method c:(Ljava/lang/Object;)Ljava/lang/Object;
5: areturn
static java.util.concurrent.atomic.AtomicBoolean a(android.support.v4.content.e);
Signature: (Landroid/support/v4/content/e;)Ljava/util/concurrent/atomic/AtomicBoolean;
Code:
0: aload_0
1: getfield #81 // Field i:Ljava/util/concurrent/atomic/AtomicBoolean;
4: areturn
protected static void b();
Signature: ()V
Code:
0: return
static void b(android.support.v4.content.e, java.lang.Object);
Signature: (Landroid/support/v4/content/e;Ljava/lang/Object;)V
Code:
0: aload_0
1: getfield #81 // Field i:Ljava/util/concurrent/atomic/AtomicBoolean;
4: invokevirtual #102 // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z
7: ifne 16
10: aload_0
11: aload_1
12: invokespecial #95 // Method c:(Ljava/lang/Object;)Ljava/lang/Object;
15: pop
16: return
private static android.os.Handler c();
Signature: ()Landroid/os/Handler;
Code:
0: ldc #2 // class android/support/v4/content/e
2: monitorenter
3: getstatic #105 // Field g:Landroid/support/v4/content/e$b;
6: ifnonnull 19
9: new #18 // class android/support/v4/content/e$b
12: dup
13: invokespecial #106 // Method android/support/v4/content/e$b."<init>":()V
16: putstatic #105 // Field g:Landroid/support/v4/content/e$b;
19: getstatic #105 // Field g:Landroid/support/v4/content/e$b;
22: astore_0
23: ldc #2 // class android/support/v4/content/e
25: monitorexit
26: aload_0
27: areturn
28: astore_0
29: ldc #2 // class android/support/v4/content/e
31: monitorexit
32: aload_0
33: athrow
Exception table:
from to target type
3 19 28 any
19 26 28 any
29 32 28 any
private Result c(Result);
Signature: (Ljava/lang/Object;)Ljava/lang/Object;
Code:
0: invokestatic #108 // Method c:()Landroid/os/Handler;
3: iconst_1
4: new #15 // class android/support/v4/content/e$a
7: dup
8: aload_0
9: iconst_1
10: anewarray #5 // class java/lang/Object
13: dup
14: iconst_0
15: aload_1
16: aastore
17: invokespecial #111 // Method android/support/v4/content/e$a."<init>":(Landroid/support/v4/content/e;[Ljava/lang/Object;)V
20: invokevirtual #117 // Method android/os/Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
23: invokevirtual #122 // Method android/os/Message.sendToTarget:()V
26: aload_1
27: areturn
static void c(android.support.v4.content.e, java.lang.Object);
Signature: (Landroid/support/v4/content/e;Ljava/lang/Object;)V
Code:
0: aload_0
1: getfield #91 // Field e:Ljava/util/concurrent/FutureTask;
4: invokevirtual #128 // Method java/util/concurrent/FutureTask.isCancelled:()Z
7: ifeq 23
10: aload_0
11: aload_1
12: invokevirtual #131 // Method b:(Ljava/lang/Object;)V
15: aload_0
16: getstatic #133 // Field android/support/v4/content/e$c.c:I
19: putfield #76 // Field f:I
22: return
23: aload_0
24: aload_1
25: invokevirtual #135 // Method a:(Ljava/lang/Object;)V
28: goto 15
protected abstract Result a();
Signature: ()Ljava/lang/Object;
protected void a(Result);
Signature: (Ljava/lang/Object;)V
Code:
0: return
protected void b(Result);
Signature: (Ljava/lang/Object;)V
Code:
0: return
}
I'VE GOT THIS ERROR WHEN I PRESS SAVE ALL FOR " WhatsApp-dex2jar.jar "
java.Lang.ArrayIndexOutOfBoundsException: -1
I'm using Whatsapp beta version 2.16.351 with a Windows xp 32 bit & and I tried both "luyten-0.4.9.exe" & "luyten-0.4.8.exe"
Is there anyway to fix it? or to recompile the app without this step .. Thank you.