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
- Editor freezes briefly when "multi-selecting" TextMeshPro GameObjects In the Hierarchy window in Prefab Mode, if 5 or more Inspector windows are open
- OnEndDrag event not triggered when losing Editor focus during simultaneous Left and Right mouse drag
- Texture displays visual artifacts and has a broken aspect ratio when it is imported in RGB 48-bit format
- Diagnostic Warning Resets When Navigating Away and Returning to Diagnostics Settings
- Checkbox Collides with Text in Shader Graph Preferences Settings
Add comment