帮忙看一下这个代码是不是检测模拟器的,我用模拟器玩游戏闪退拦截了这个代码
//
// Decompiled by Jadx (from NP Manager)
//
package com.unity3d.player;
import java.lang.Thread.UncaughtExceptionHandler;
final class m implements UncaughtExceptionHandler {
private volatile UncaughtExceptionHandler a;
m() {
}
final synchronized boolean a() {
boolean z;
m defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
if (defaultUncaughtExceptionHandler == this) {
z = false;
} else {
this.a = defaultUncaughtExceptionHandler;
Thread.setDefaultUncaughtExceptionHandler(this);
z = true;
}
return z;
}
/* JADX ERROR: NullPointerException in pass: BlockSplitter
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean jadx.core.dex.nodes.BlockNode.contains(jadx.core.dex.attributes.AType)' on a null object reference
at jadx.core.dex.visitors.blocksmaker.BlockSplitter.connectExceptionHandlers(Unknown Source:64)
at jadx.core.dex.visitors.blocksmaker.BlockSplitter.setupConnections(Unknown Source:58)
at jadx.core.dex.visitors.blocksmaker.BlockSplitter.splitBasicBlocks(Unknown Source:23)
at jadx.core.dex.visitors.blocksmaker.BlockSplitter.visit(Unknown Source:13)
at jadx.core.dex.visitors.DepthTraversal.visit(Unknown Source:9)
at jadx.core.dex.visitors.DepthTraversal.visit(Unknown Source:41)
at jadx.core.ProcessClass.process(Unknown Source:54)
at jadx.api.JadxDecompiler.processClass(Unknown Source:4)
at jadx.api.JavaClass.decompile(Unknown Source:19)
*/
public final synchronized void uncaughtException(java.lang.Thread r8, java.lang.Throwable r9) {
/*
r7 = this;
return r0;
monitor-enter(r7);
r0 = new java.lang.Error; Catch:{ Throwable -> 0x0066 }
r1 = new java.lang.StringBuilder; Catch:{ Throwable -> 0x0066 }
r1.<init>(); Catch:{ Throwable -> 0x0066 }
r2 = "FATAL EXCEPTION [%s]\n"; Catch:{ Throwable -> 0x0066 }
r3 = 1; Catch:{ Throwable -> 0x0066 }
r4 = new java.lang.Object[r3]; Catch:{ Throwable -> 0x0066 }
r5 = r8.getName(); Catch:{ Throwable -> 0x0066 }
r6 = 0; Catch:{ Throwable -> 0x0066 }
r4[r6] = r5; Catch:{ Throwable -> 0x0066 }
r2 = java.lang.String.format(r2, r4); Catch:{ Throwable -> 0x0066 }
r1.append(r2); Catch:{ Throwable -> 0x0066 }
r2 = "Unity version : %s\n"; Catch:{ Throwable -> 0x0066 }
r4 = new java.lang.Object[r3]; Catch:{ Throwable -> 0x0066 }
r5 = "2018.4.30f1"; Catch:{ Throwable -> 0x0066 }
r4[r6] = r5; Catch:{ Throwable -> 0x0066 }
r2 = java.lang.String.format(r2, r4); Catch:{ Throwable -> 0x0066 }
r1.append(r2); Catch:{ Throwable -> 0x0066 }
r2 = "Device model : %s %s\n"; Catch:{ Throwable -> 0x0066 }
r4 = 2; Catch:{ Throwable -> 0x0066 }
r4 = new java.lang.Object[r4]; Catch:{ Throwable -> 0x0066 }
r5 = android.os.Build.MANUFACTURER; Catch:{ Throwable -> 0x0066 }
r4[r6] = r5; Catch:{ Throwable -> 0x0066 }
r5 = android.os.Build.MODEL; Catch:{ Throwable -> 0x0066 }
r4[r3] = r5; Catch:{ Throwable -> 0x0066 }
r2 = java.lang.String.format(r2, r4); Catch:{ Throwable -> 0x0066 }
r1.append(r2); Catch:{ Throwable -> 0x0066 }
r2 = "Device fingerprint: %s\n"; Catch:{ Throwable -> 0x0066 }
r3 = new java.lang.Object[r3]; Catch:{ Throwable -> 0x0066 }
r4 = android.os.Build.FINGERPRINT; Catch:{ Throwable -> 0x0066 }
r3[r6] = r4; Catch:{ Throwable -> 0x0066 }
r2 = java.lang.String.format(r2, r3); Catch:{ Throwable -> 0x0066 }
r1.append(r2); Catch:{ Throwable -> 0x0066 }
r1 = r1.toString(); Catch:{ Throwable -> 0x0066 }
r0.<init>(r1); Catch:{ Throwable -> 0x0066 }
r1 = new java.lang.StackTraceElement[r6]; Catch:{ Throwable -> 0x0066 }
r0.setStackTrace(r1); Catch:{ Throwable -> 0x0066 }
r0.initCause(r9); Catch:{ Throwable -> 0x0066 }
r1 = r7.a; Catch:{ Throwable -> 0x0066 }
r1.uncaughtException(r8, r0); Catch:{ Throwable -> 0x0066 }
monitor-exit(r7);
return;
r8 = move-exception;
goto L_0x006d;
L_0x0066:
r0 = r7.a; Catch:{ all -> 0x0064 }
r0.uncaughtException(r8, r9); Catch:{ all -> 0x0064 }
monitor-exit(r7);
return;
L_0x006d:
monitor-exit(r7);
throw r8;
*/
throw new UnsupportedOperationException("Method not decompiled: com.unity3d.player.m.uncaughtException(java.lang.Thread, java.lang.Throwable):void");
}
}