try to fix crash

This commit is contained in:
khanhduytran0 2020-11-03 13:37:09 +07:00
parent d2f70636fd
commit e5fb44c353
2 changed files with 15 additions and 13 deletions

View File

@ -30,7 +30,7 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O
public static volatile ClipboardManager GLOBAL_CLIPBOARD;
public static final String initText = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ";
volatile public static boolean isPushPollCall;
volatile public static boolean isInputStackCall;
private static int[] hotbarKeys = {
LWJGLGLFWKeycode.GLFW_KEY_1, LWJGLGLFWKeycode.GLFW_KEY_2, LWJGLGLFWKeycode.GLFW_KEY_3,
@ -162,8 +162,8 @@ public class MainActivity extends LoggableActivity implements OnTouchListener, O
setTitle("Minecraft " + mProfile.getVersion());
// Minecraft 1.13+
isPushPollCall = mVersionInfo.arguments != null;
CallbackBridge.nativeAttachThreadToOther(true, isPushPollCall);
isInputStackCall = mVersionInfo.arguments != null;
CallbackBridge.nativeAttachThreadToOther(true, isInputStackCall);
this.displayMetrics = Tools.getDisplayMetrics(this);
CallbackBridge.windowWidth = displayMetrics.widthPixels / scaleFactor;

View File

@ -98,6 +98,7 @@ void getJavaInputBridge(jclass* clazz, jmethodID* method) {
}
void sendData(int type, int i1, int i2, int i3, int i4) {
if (runtimeJNIEnvPtr_ANDROID != NULL) {
(*runtimeJNIEnvPtr_ANDROID)->CallStaticVoidMethod(
runtimeJNIEnvPtr_ANDROID,
inputBridgeClass_ANDROID,
@ -105,6 +106,7 @@ void sendData(int type, int i1, int i2, int i3, int i4) {
type,
i1, i2, i3, i4
);
}
}
JNIEXPORT void JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeAttachThreadToOther(JNIEnv* env, jclass clazz, jboolean isAndroid, jboolean isUseStackQueue) {
@ -126,10 +128,10 @@ JNIEXPORT jstring JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeClipboard(JNI
// TODO: if crash here, then convert jstring to jstring (diff JVM)
jclass bridgeClazz = (*dalvikJNIEnvPtr_JRE)->FindClass(dalvikJNIEnvPtr_JRE, "org/lwjgl/glfw/CallbackBridge");
assert(bridgeClazz != NULL);
jmethodID method = (*dalvikJNIEnvPtr_JRE)->GetStaticMethodID(dalvikJNIEnvPtr_JRE, bridgeClazz, "accessAndroidClipboard", "(ILjava/lang/String;)Ljava/lang/String;");
assert(method != NULL);
jmethodID bridgeMethod = (*dalvikJNIEnvPtr_JRE)->GetStaticMethodID(dalvikJNIEnvPtr_JRE, bridgeClazz, "accessAndroidClipboard", "(ILjava/lang/String;)Ljava/lang/String;");
assert(bridgeMethod != NULL);
return (jstring) (*dalvikJNIEnvPtr_JRE)->CallStaticObjectMethod(dalvikJNIEnvPtr_JRE, bridgeClazz, action, copy);
return (jstring) (*dalvikJNIEnvPtr_JRE)->CallStaticObjectMethod(dalvikJNIEnvPtr_JRE, bridgeClazz, bridgeMethod, action, copy);
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeSetInputReady(JNIEnv* env, jclass clazz, jboolean inputReady) {