无法在Unity3D中调用本地Android代码 - java

无法在Unity中调用本机代码

我相当机智,这就是在说些什么。似乎无论我做什么,我都无法成功从Unity进行回叫到android类。我的C#课

 AndroidJavaClass soundActivityJavaClass;
     AndroidJavaObject soundActivityObject;
     string parse = "";
     // Use this for initialization
     void Start () {
         AndroidJNIHelper.debug = true;
         AndroidJNI.AttachCurrentThread();
         soundActivityJavaClass = new AndroidJavaClass("com.stuff.oro.UnityBridge");
         soundActivityObject = soundActivityJavaClass.GetStatic<AndroidJavaObject>("instance");
         parse = soundActivityObject.Call<string>("testBridge");

     }

     // Update is called once per frame
     void Update () {


     }

     void OnGUI()
     {
         if (GUI.Button(new Rect(300, 0, 100, 50), "Get mode..."))
         {
             AndroidJavaClass jc = new AndroidJavaClass("com.stuff.oro.UnityBridge");
             AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("instance");

             print(jo.Call<string>("testBridge"));
             Debug.Log(jo.Call<string>("testBridge"));
         }
     }

我当前的android类:

 public class UnityBridge extends UnityPlayerActivity{

     public static UnityBridge instance;
     public String testBridge(){
         return "this is a test";
     }
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         UnityBridge.instance = this;
     }

     public UnityBridge getInstance(){
         return instance;
     }

 }

从无法编译到拥有

11-30 23:27:53.960:I / Unity(25864):AndroidJavaException:java.lang.NoSuchFieldError:没有名称='instance'signature ='Ljava / lang / Object;'的静态字段在Lcom / stuff / oro / UnityBridge类中;

11-30 23:27:53.960:I / Unity(25864):at UnityEngine.AndroidJNISafe.CheckException()[0x00000] in:0

参考方案

对于任何想知道的人:

本质上,我永远无法在继承UnityPlayerActivity的类上专门调用非静态方法。最终,我完全放弃了它的继承(这是可能的),如果我曾经需要实际的Activity(用于上下文等),我会调用UnityPlayer.currentActivity

希望这可以帮助某人

绑定Java库Xamarin.Android - java

我花了两天时间在每个论坛,文档,tuto,博客等上寻找答案。我为实习生启动了一个Android应用程序,因为我不懂Java,所以用xamarin C#开发了它。直到最近一切都还不错,但现在我需要集成一个SDK才能在应用程序中使用POS(销售点),但是该库是用Java编写的,即使跟随文档或辅导老师,我也无法将其与xamarin绑定(我什至无法调试)。这里有人已…

为什么我的应用在启动时总是崩溃-Android - java

刚刚遵循了有关如何制作按钮和活动的youtube指南。我按照他的代码减小字体大小,并且在启动时一直崩溃。有人知道为什么吗?public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { su…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

Android:如何为wrap_content设置高度动画? - java

我需要使用ValueAnimator来使用户拖动特定视图时出现自定义“放置字段”。 (我想将字段从gone, height = 0更改为visible, height = wrap_content)。我已经尝试过以下问题的解决方案:How to animate to wrap_content?当我在单个TextView上使用它时,答案就起作用了,但是当我尝试…

Java-搜索字符串数组中的字符串 - java

在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…