Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android WebView活动崩溃:java.lang.IllegalStateException:在UI线程以外的其他线程上调用视图方法_Java_Android_Unity3d_Webview - Fatal编程技术网

Android WebView活动崩溃:java.lang.IllegalStateException:在UI线程以外的其他线程上调用视图方法

Android WebView活动崩溃:java.lang.IllegalStateException:在UI线程以外的其他线程上调用视图方法,java,android,unity3d,webview,Java,Android,Unity3d,Webview,我有一个用于unity的定制android插件,可以打开一个Webview活动。当我试图打开活动时,它崩溃了。当我尝试初始化WebView时,log cat会显示以下日志语句 Caused by: java.lang.IllegalStateException: Calling View methods on another thread than the UI thread. at com.android.webview.chromium.WebViewChromium.createThrea

我有一个用于unity的定制android插件,可以打开一个
Webview
活动。当我试图打开活动时,它崩溃了。当我尝试初始化
WebView
时,log cat会显示以下日志语句

Caused by: java.lang.IllegalStateException: Calling View methods on another thread than the UI thread.
at com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:252)
at com.android.webview.chromium.WebViewChromium.checkThread(WebViewChromium.java:267)  
at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:163)
at android.webkit.WebView.<init>(WebView.java:661)
at android.webkit.WebView.<init>(WebView.java:596)
at android.webkit.WebView.<init>(WebView.java:579)
at android.webkit.WebView.<init>(WebView.java:566)
at android.webkit.WebView.<init>(WebView.java:556)
at com.vadrnet.unitysdk.MyWebViewClass.<init>(MyWebViewClass.java:31)
at com.vadrnet.unitysdk.WebViewActivity$1.run(WebViewActivity.java:207)
at android.app.Activity.runOnUiThread(Activity.java:5850)
at com.vadrnet.unitysdk.WebViewActivity.onCreate(WebViewActivity.java:205)
at android.app.Activity.performCreate(Activity.java:6582)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2532)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2667)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1494)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

尽管正在UI线程本身中打开活动,但我无法理解为什么会发生错误。任何帮助都很好。

这个问题为您解决了吗?
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
{
   AndroidJavaClass jc = new AndroidJavaClass("com.vadrnet.unitysdk.ManagerClass");
   AndroidJavaObject className = jc.CallStatic<AndroidJavaObject>("instance");
   className.Call("click", currentActivity, url);
 }));
 public void click(Activity root, String url){
    Intent intent = new  Intent(root, WebViewActivity.class);
    intent.putExtra("url", url);
    root.startActivity(intent);
}