2017-05-08 11 views
0

しようとすると、書き込みユニティプラグイン... AAR libにとしてインポートname = 'getMessage' signature = '()Ljava/lang/String;の静的メソッドはありません。クラスLjava.lang.Object;アンドロイドStudioに

public class My_Plugin extends UnityPlayerActivity { 

    private Context mContext; 

    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     mContext = this; 
     TelephonyManager telephonyManager = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)); 
     getMessage(telephonyManager.getSimOperatorName()); 
    } 

    public static String getMessage(String message){ 
     return message; 
    } 
} 

1クラス。

ユニティでは2行のコードしかありません。

AndroidJavaClass pluginClass = new AndroidJavaClass("com.eppz.myplugin.My_Plugin"); 
     GetComponent<Text>().text = pluginClass.CallStatic<string>("getMessage"); 

とエラー・ログの下に見て:Javaから

I/Unity: AndroidJavaException: java.lang.NoSuchMethodError: no static method with name='getMessage' signature='()Ljava/lang/String;' in class Ljava.lang.Object; 
              java.lang.NoSuchMethodError: no static method with name='getMessage' signature='()Ljava/lang/String;' in class Ljava.lang.Object; 
               at com.unity3d.player.ReflectionHelper.getMethodID(Unknown Source) 
               at com.unity3d.player.UnityPlayer.nativeRender(Native Method) 
               at com.unity3d.player.UnityPlayer.a(Unknown Source) 
               at com.unity3d.player.UnityPlayer$c$1.handleMessage(Unknown Source) 
               at android.os.Handler.dispatchMessage(Handler.java:98) 
               at android.os.Looper.loop(Looper.java:135) 
               at com.unity3d.player.UnityPlayer$c.run(Unknown Source) 
              at UnityEngine.AndroidJNISafe.CheckException() [0x00000] in <filename unknown>:0 
              at UnityEngine.AndroidJNISafe.CallStaticObjectMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0 
              at UnityEngine.AndroidReflection.GetMethodMember (IntPtr jclass, System.String methodName, Syst 

答えて

1

あなたgetMessage関数は、文字列パラメータを取ります。文字列引数で呼び出す必要があります。

pluginClass.CallStatic<string>("getMessage"); 

は次のようになります。

pluginClass.CallStatic<string>("getMessage", "my parameter"); 
関連する問題