错误:在方法调用期间引发了 Java 异常

Posted

技术标签:

【中文标题】错误:在方法调用期间引发了 Java 异常【英文标题】:Error: Java exception was raised during method invocation 【发布时间】:2022-01-08 17:22:24 【问题描述】:

android 5,6,7上js调用android的native方法时报错

Error: Java exception was raised during method invocation

javascript 我这样调用原生 android 的方法:

Android.setIsGoBack(true);

在 android 端,我在抽象类中有这个方法,例如:

@JavascriptInterface
override fun setIsGoBack(isGoBack: Boolean) 
     (activity as DashBoardActivity).isGoBack = isGoBack
     (activity as DashBoardActivity).setHeader("")

我不确定 Android 5、6、7 到底出了什么问题。

【问题讨论】:

【参考方案1】:

我已经解决了上述问题。问题是我从 javascript 调用该方法并在 UI 之外的其他线程中更新 UI (activity as DashBoardActivity).setHeader("")。所以将我的方法更改为:

 @JavascriptInterface
    override fun setIsGoBack(isGoBack: Boolean) 


        activity?.runOnUiThread 
            (activity as DashBoardActivity).isGoBack = isGoBack
            (activity as DashBoardActivity).setHeader("")
        
    

在主线程上更新 UI 对我有用。

【讨论】:

以上是关于错误:在方法调用期间引发了 Java 异常的主要内容,如果未能解决你的问题,请参考以下文章

linq 在查询表达式中处理异常

调试与异常

如何在对引发异常的 C# webmethod 的 ajax 调用上指定消息?

如何使用 Mockery 在模拟方法的第 N 次调用中引发异常

禁用上下文 LOB 创建作为 createClob() 方法引发错误

DDS Java 示例引发大量警告“在未检查异常的情况下进行 JNI 调用”