Java 如何在Windows 10上的Android Studio上的Nao robot V3和Android应用程序之间进行通信?

Java 如何在Windows 10上的Android Studio上的Nao robot V3和Android应用程序之间进行通信?,java,android,nao-robot,Java,Android,Nao Robot,我想在Nao V3和Android应用程序之间进行通信,我使用Naoqi 2.1.4.13和Java。我想把他们联系在一起,相互影响。 例如:用户点击“连接”按钮,这将把机器人连接到界面上,然后用户在应用程序上选择太极丹,这将启动太极行为。 我有JavaAPI,我可以用Java类和主函数与robot通信,而无需接口。但是我想用界面来做。问题是,我在android studio上的android项目没有一个公共静态void main(String[]args)函数,只有一个受保护的void onC

我想在Nao V3和Android应用程序之间进行通信,我使用Naoqi 2.1.4.13和Java。我想把他们联系在一起,相互影响。 例如:用户点击“连接”按钮,这将把机器人连接到界面上,然后用户在应用程序上选择太极丹,这将启动太极行为。 我有JavaAPI,我可以用Java类和主函数与robot通信,而无需接口。但是我想用界面来做。问题是,我在android studio上的android项目没有一个公共静态void main(String[]args)函数,只有一个受保护的void onCreate(Bundle savedInstanceState)函数。 你能帮我解决我的问题吗

我已经尝试过在没有主函数的情况下进行通信,主函数是我的Android应用程序的MainActivity java类。但它不起作用

我尝试:

 private Application app = null;
private Session session = null;
protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        app = new Application(null);
    }
接下来呢

我有一个错误出现了:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication1/com.example.myapplication1.MainActivity}:
 java.lang.RuntimeException: Creating application with null args
Caused by: java.lang.RuntimeException: Creating application with null args
        at com.aldebaran.qi.Application.<init>(Application.java:59)
        at com.example.myapplication1.MainActivity.onCreate(MainActivity.java:35)
        at android.app.Activity.performCreate(Activity.java:6662)

您需要将
字符串[]args
传递给
应用程序的构造函数。一个虚拟的
字符串[]
可能就可以了。

当我尝试此操作时:

String[] arg = new String[]{"robot_app"};
    public Application app;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    app = new Application(arg);
}
我有这样的错误:

Process: com.example.myapplication1, PID: 28357
    java.lang.UnsatisfiedLinkError: No implementation found for long com.aldebaran.qi.Application.qiApplicationCreate(java.lang.String[], java.lang.String, boolean) (tried Java_com_aldebaran_qi_Application_qiApplicationCreate and Java_com_aldebaran_qi_Application_qiApplicationCreate___3Ljava_lang_String_2Ljava_lang_String_2Z)
        at com.aldebaran.qi.Application.qiApplicationCreate(Native Method)
        at com.aldebaran.qi.Application.init(Application.java:65)
        at com.aldebaran.qi.Application.<init>(Application.java:60)
        at com.example.myapplication1.MainActivity.onCreate(MainActivity.java:32)
        at android.app.Activity.performCreate(Activity.java:6662)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Process:com.example.myapplication1,PID:28357
java.lang.unsatifiedLinkError:未找到long com.aldebaran.qi.Application.qiApplicationCreate(java.lang.String[],java.lang.String,boolean)的实现(已尝试java_com_-aldebaran_-qi_-qi_应用程序_-qi_-qi_-qi_应用程序_-qia_-qia_-qia_-qia_-qia_-qia_-qia_-qia_-qia_-qia_-qi_-qia_-qia_-qi
在com.aldebaran.qi.Application.qiApplicationCreate(本机方法)上
位于com.aldebaran.qi.Application.init(Application.java:65)
位于com.aldebaran.qi.Application.(Application.java:60)
位于com.example.myapplication1.MainActivity.onCreate(MainActivity.java:32)
位于android.app.Activity.performCreate(Activity.java:6662)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
位于android.app.ActivityThread.-wrap12(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6077)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

为什么您认为需要一个
main
来执行此操作?如果您不向我们展示您当前拥有的代码,我们将无法真正帮助您。我认为这是应用程序构造函数中的参数!因为在main函数中使用字符串[]args时,它正在工作!如果OnCreate函数的构造函数中有空字符串或新字符串[]{},则该函数不起作用
Process: com.example.myapplication1, PID: 28357
    java.lang.UnsatisfiedLinkError: No implementation found for long com.aldebaran.qi.Application.qiApplicationCreate(java.lang.String[], java.lang.String, boolean) (tried Java_com_aldebaran_qi_Application_qiApplicationCreate and Java_com_aldebaran_qi_Application_qiApplicationCreate___3Ljava_lang_String_2Ljava_lang_String_2Z)
        at com.aldebaran.qi.Application.qiApplicationCreate(Native Method)
        at com.aldebaran.qi.Application.init(Application.java:65)
        at com.aldebaran.qi.Application.<init>(Application.java:60)
        at com.example.myapplication1.MainActivity.onCreate(MainActivity.java:32)
        at android.app.Activity.performCreate(Activity.java:6662)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)