【问题标题】:Calling a native function from within an inner class从内部类中调用本机函数
【发布时间】:2015-01-31 20:58:58
【问题描述】:

我有一个本机函数,我可以从我的活动中调用它而不会出错。它被声明为 myActivity 的(非静态)方法。

我试图从内部类(线程)中调用它:

new Thread(new Runnable() {
    public void run() {

        MyActivity.this.nativeFunction();
    }
  }).start();

我的错误是找不到本地方法。请注意,我可以直接从 myActivity 调用 nativeFunction(它的全名是 myActivity)

【问题讨论】:

  • 显示更多代码和完整的崩溃报告
  • 编译错误?联动错误?注意这里的内部类是一个anonymous内部类,它是一个Runnable,而不是一个Thread。

标签: java android java-native-interface inner-classes


【解决方案1】:

也许尝试这样做?

MainActivity.this.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                //call the native function
                            }
                        });

【讨论】:

  • 为什么?那将如何解决问题?什么问题?
猜你喜欢
  • 2021-05-15
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2012-11-05
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多