Search Issue Tracker
Fixed in 2021.2.X
Votes
0
Found in
2018.4
2019.4
2019.4.3f1
2020.1
2020.2
2021.1
Issue ID
1277152
Regression
No
There is no way to have 2 instances of AndroidJavaObject with different references
Use cases:
1 AndroidJavaObject needs to be passed to multiple independent bodies of code -- each which have their own independent duration for holding onto the AndroidJavaObject.
One returns an AndroidJavaObject from an AndroidJavaProxy method then AndroidJavaProxy automatically calls Dispose() on that AndroidJavaObject outside the developer's visibility or control while other code may need to continue using that AndroidJavaObject.
Workaround script:
public static AndroidJavaObject NewAndroidJavaObject(AndroidJavaObject androidJavaObject)
{
if (androidJavaObject == null)
{
return null;
}
AndroidJavaClass objectsClass = AndroidUtilities.objectsClass;
if (objectsClass == null)
{
AndroidUtilities.objectsClass = objectsClass = new AndroidJavaClass("java.util.Objects");
}
return objectsClass.CallStatic<AndroidJavaObject>("requireNonNull", androidJavaObject);
}
Notes:
Related forum thread: https://forum.unity.com/threads/androidjavaobject-any-way-to-clone-for-separate-dispose-management.967609/
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Shader Graph Create Node window cannot be resized or moved after maximizing and reopening it
- [Usability] Cannot toggle Scene checkboxes using TAB/Enter in Build Profiles’ > Open Scene List
- Installing HDRP package throws Shader Graph validation warning about Exposure node when installed in Universal 3D Template
- ShaderGraph “Create Node” menu’s resize icon overlaps with the menu's scrollbar
- ShaderGraph “Create Node” menu’s Search bar's typing cursor is barely visible since it's black on a dark background
Add comment