Hello. I have successfully got a plugin working for unity with a java .jar. I can call static classes from my jar file but not non static classes. I have no clue why. I am trying to do it like this. I read that its possible to do it like the following code, but I gave it a shot and its not working. Thanks for any help bye.
-----------------MonoBehaviour Script
_ActivityClass = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
_MyActivityClass = new AndroidJavaClass(“com.example.john.myapplication.MainActivity”);
_ActivityObject = _ActivityClass.GetStatic(“currentActivity”);
int iresult = _ActivityObject.Call(“getNumber”);
---------------MonoBehaviour Script
----------------Java code
public int number = 11;
public int getNumber()
{
number++;
return number;
}
----------------Java code
You are calling UnityPlayer.currentActivity.getNumber(). Are you sure that you have set your custom activity as the main activity ?
I don’t think I was doing it right. Finally I think I have got it right, encase anyone has any input , or it may help someone int he future too.
C#
androidJavaClass = new AndroidJavaClass(“com.example.john.myapplication.MainActivity”);
AndroidJavaClass unityPlayerObject = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject unityActivity = unityPlayerObject.GetStatic(“currentActivity”);
androidJavaClass.Call(“initialize”, unityActivity);
JAVA
public void initialize (Context unityContext){
}
I got it working but I still have issues. I am trying out retrieving values from my jar file like so. If i make getNumber static I can get the value 55. If I make getNumber not static I get 0 back. Can anyone explain this to me.
C#
androidJavaClass = new AndroidJavaClass(“com.example.john.myapplication.MainActivity”);
AndroidJavaClass unityPlayerObject = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject unityActivity = unityPlayerObject.GetStatic(“currentActivity”);
androidJavaClass.Call(“initialize”, unityActivity);
int Times_Called = androidJavaClass.CallStatic(“getNumber”);
JAVA
public static int getNumber()
{
return 55;
}
I have also tried this C# code to get a stringa rray back from a jar file.
C#
AndroidJavaObject returnedStringArray =
androidJavaClass.Call<AndroidJavaObject(“getStringsAfterPassingThemIn”, unityActivity);
I get nothing back from the java file unless I do a CallStatic. Thanks for any input bye.