Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Exception with Android webview and AndroidJavaClass in Unity

Discussion in 'Scripting' started by abarra, Sep 1, 2015.

  1. abarra

    abarra

    Joined:
    Dec 16, 2013
    Posts:
    3
    Hi guys,

    I'm working on create an Android java webview ( new WebView() ) and I'm getting an exception and I don't have a clue to know what the problem is, my code is.

    1.- In the unity project the code is calling the java code with AndroidJavaClass for example:

    Debug.Log ("Awake start!");
    AndroidJavaClass m_jniUnity = new AndroidJavaClass( "package.name.SingletonClass" );
    m_jniUnity.CallStatic ("createWebView", null);

    2.- One Android Studio project to create the webview, The code creates the webview with
    UnityPlayer.currentActivity as Activity, the current activity is an custom class that extends of
    UnityPlayerActivity.

    //Activity
    public class MyUnityActivity extends UnityPlayerActivity {

    //WebView creation
    Activity sActivity = UnityPlayer.currentActivity; // Should be a MyUnityActivity
    mWebView = new WebView(sActivity); // I checked the activity and it is the expected object

    3.- The exception, at the moment when the WebView is created I got this error:

    09-01 00:26:28.446 17536-17554/? I/Unity﹕ AndroidJavaException: java.lang.NullPointerException: Attempt to read from field 'android.os.MessageQueue android.os.Looper.mQueue' on a null object reference
    at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
    at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
    at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
    at UnityEngine.AndroidJavaObject.CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
    at MyApp.Awake () [0x00000] in <filename unknown>:0

    Do you have an idea ?


    Thanks.