Search Issue Tracker

Fixed in Unity 5.6.0

Votes

2

Found in

5.3.6p6

Issue ID

839005

Regression

No

AndroidJavaObject.Call<>() throws exception instead of returning null pointer

Android

-

-

Priority: 3Not yet prioritized for a release

-

Severity: 3Workaround is possible

Reproduction steps:
1. Open the attached project ("839005 - ReproProject.zip")
2. Build and run on Android device
3. Check device logcat

Actual result: "Exception: JNI: Init'd AndroidJavaObject with null ptr!" is thrown

Expected result: "Exception: JNI: Init'd AndroidJavaObject with null ptr!" shouldn't be thrown

Reproduced on:
5.2.3p3, 5.3.7p4, 5.4.4p3, 5.5.1p4, 5.6.0b9

DUT:
Meizu MX5 with Android 5.0.1
Samsung Galaxy S7 (SM-G930F) with Android 6.0.1

Fixed in: 2017.1.0a5
Backported to: 5.6.0p3, 5.5.3p3

Comments (1)

  1. E679e4f72e6ebeb935450adf5391529b?d=mm

    vitaliy-zasadnyy

    Feb 21, 2017 10:42

    Exceptions are not the best for flow control. From my point of view it's better to return AndroidJavaObject that satisfies conditions:

    public static bool IsJavaNull(this AndroidJavaObject ajo)
    {
    return ajo == null || ajo.GetRawObject().ToInt32() == 0;
    }

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.