所以我几天都坚持这个问题。我已经将Unity与Eclipse IDE集成在一起,我可以完美地构建和部署项目。但是,我试图在java端启动一个基本的Intent并在Unity / C#端触发它。
这是我的Java端代码:
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerNativeActivity;
public class AppLauncher extends UnityPlayerNativeActivity
{
public Intent myIntent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//Assuming that we want to launch the browser to browse a website
Uri uri = Uri.parse("http://www.google.com");
myIntent= new Intent(Intent.ACTION_VIEW, uri);
}
public void Trigger()
{
startActivity(myIntent);
}
}
这是在遇到C#触发器时被logcat抛出的错误:
以下是C#方面的代码:
if(s[0].Equals("Spr"))
{
print("Launched");
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("Trigger");
}
这是在遇到C#触发器时被logcat抛出的错误:
AndroidJavaException: java.lang.NoSuchMethodError: no method with name='Trigger' signature='()V' in class Lcom/unity3d/player/UnityPlayerNativeActivity;
我已尝试通过自定义签名和C#脚本中的Trigger方法名称进行调整,我尝试扩展标准UnityPlayerActivity等...我已经尝试了几个小时的东西而且我似乎无法解决这个问题。
任何帮助都被大大接受了!
答案 0 :(得分:0)
您确定自己的活动已创建吗?你真的需要延长活动吗?我会尝试这样的事情:
爪哇:
package my.package;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class AppLauncher
{
public static void Trigger()
{
//Assuming that we want to launch the browser to browse a website
Uri uri = Uri.parse("http://www.google.com");
Intent myIntent= new Intent(Intent.ACTION_VIEW, uri);
startActivity(myIntent);
}
}
C#:
AndroidJavaObject jo = new AndroidJavaObject("my.package.AppLauncher");
jo.CallStatic("Trigger");