2017-08-30 177 views
0

我在Android Studio中創建了一個Android庫並導出了一個jar文件。我在庫中創建了2個類。一個是SimpleClass秒是PlayerClass在Unity中調用JAR文件方法

首先我試着在它下面的代碼成功調用該方法。

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); 
} 

然後我在添加extends PlayerClass JAVA,當我在統一稱之爲CallNow()它沒有返回值了。

package a.b.c.simplelibrary; 

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

回答

-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); 
     } 
    } 
} 
+0

感謝和抱歉,這不是爲我工作 –

+0

如果這不起作用嘗試此解決方案http://answers.unity3d.com/questions/330809/integration-of-jar-file-using-jni。 HTML –