android-go/examples/fragment/os_android.go

36 lines
822 B
Go

//go:generate javac -bootclasspath $ANDROID_HOME/platforms/android-29/android.jar AFrag.java
//go:generate jar cf AFrag.jar AFrag.class
//go:generate rm AFrag.class
package main
import (
"log"
"gioui.org/app"
)
func registerFragment(w *app.Window) {
labchan <- "registerFragment()"
SetJVM(app.JavaVM(), app.AppContext())
w.Do(func(view uintptr) {
RunInJVM(func(env *JNIEnv) {
log.Print("finding class")
cls := FindClass(env, "st/wow/git/fragment/AFrag")
log.Print("getting methodID")
mth := JniGetMethodID(env, cls, "register", "(Landroid/view/View;)V");
if mth == nil {
labchan <- "nil method"
return
}
log.Print("creating object")
inst := CreateObject(env, cls)
log.Print("calling method")
JniCallVoidMethod1(env, inst, mth, view)
log.Print("got result")
})
})
}