【问题标题】:Call JAR file method in Unity在 Unity 中调用 JAR 文件方法
【发布时间】:2017-08-30 08:15:01
【问题描述】:

我在 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;
    }
}

【问题讨论】:

    标签: java c# android unity3d jar


    【解决方案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);
            }
        }
    }
    

    【讨论】:

    猜你喜欢
    • 2012-04-15
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2016-01-23
    • 2014-01-27
    • 2013-10-25
    • 2010-10-27
    相关资源
    最近更新 更多