在Unity中调用JAR文件方法

时间:2017-08-30 08:15:01

标签: java c# android unity3d jar

我在Android Studio中创建一个Android库并导出一个jar文件。我在库中创建了2个类。一个SimpleClass秒是PlayerClass

首先,我尝试了下面的代码,成功调用了该方法。

JAVA

package a.b.c.simplelibrary;

public class SimpleClass{
    public static String CallNumber(int nums){
        return "Number is " + nums;
    }
}

在Unity C#

public Text SimpleText;
public void CallNow(){
    AndroidJavaObject jo = new AndroidJavaObject ("a.b.c.simplelibrary.SimpleClass");
    SimpleText.text = jo.CallStatic<string>("CallNumber",123);
}

然后我在 JAVA 中添加extends PlayerClass,当我在Unity中调用CallNow()时,它不再返回该值。

package a.b.c.simplelibrary;

public class SimpleClass extends PlayerClass{
    public static String CallNumber(int nums){
        return "Number is " + nums;
    }
}

1 个答案:

答案 0 :(得分:-1)

我使用下面的函数来调用位于FlurryAgent类中的flurry“onStartSession”函数。试试这个,也可能适合你。

private AndroidJavaClass cls_FlurryAgent = new AndroidJavaClass("com.flurry.android.FlurryAgent");

public void onStartSession(string apiKey)
{

    Debug.Log ("****** onStartSession " +apiKey);
    using(AndroidJavaClass cls_UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) 
    {
        using(AndroidJavaObject obj_Activity = cls_UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) 
        {
            cls_FlurryAgent.CallStatic("onStartSession", obj_Activity, apiKey);
        }
    }
}