【问题标题】:Exception does not catching in try..catch(Exception ex)try..catch(Exception ex) 中没有捕获异常
【发布时间】:2015-06-19 06:24:01
【问题描述】:

测试 videeditor_jni 本机库在系统库中的存在

static {
    try {
        if (System.getProperty("videoeditor_jni") != null) {
            System.loadLibrary("videoeditor_jni");
        } else {
            PreferenceManager.setLibraryFlag(false);

        }
    } catch (Exception e) {
        PreferenceManager.setLibraryFlag(false);
    }

}

在运行此代码时,我在 logcat 的库中遇到了 UnsatisfiedException。 虽然我已经设置了条件并尝试..catch 它正在检查条件,然后是强制关闭。为什么不去抓??任何原因?尝试了 UnsatisfiedException, RuntimeException, Exception, Error 但在 catch 中没有调用任何东西.. 需要帮助。

【问题讨论】:

  • 评论这个 PreferenceManager.setLibraryFlag(false);并尝试 e.printStackTrace()
  • 试过了..也尝试记录和调试..但仍然没有达到..,
  • 让你的方法成为非静态的,阅读here了解更多信息
  • 给出你得到的异常堆栈跟踪,并告诉我们你在这里显示的代码中的哪一行是你代码中的哪一行
  • @hoijui 你是对的,我误解了这个问题,我的错;)

标签: android java-native-interface native-code unsatisfiedlinkerror system-properties


【解决方案1】:

要捕获异常 stackTrace 使用方法 printStackTrace()。如下所示

编写这个Application类的onCreate方法。

public void onCreate()
    {
super.onCreate();
....

        try {
            if (System.getProperty("videoeditor_jni") != null) {
                System.loadLibrary("videoeditor_jni");
            } else {
                PreferenceManager.setLibraryFlag(false);

            }
        } catch (Exception e) {
          e.printStackTrace.
        }

    }

【讨论】:

  • 试过这个。从 if 条件返回......没有继续前进或没有达到 catch 子句。甚至不会在捕获时打印日志并且无法通过调试模式访问。
  • 尝试在Application类onCreate()上执行这个
  • @pravin Sharma 将这些条件放在应用程序 onCreate() 中总是会转到 else 条件,尽管它应该转到 if 条件,因为 videoeditor_jni 存在并且正在工作。
  • 如果它存在,那么它必须在静态和非静态两个块中执行。
  • 在静态和非静态两种情况下 **System.getProperty("videoeditor_jni") ** 返回 null 。它在某个地方成功加载,因为它被提前使用并且运行良好。不明白为什么 System.getproperty 返回 null
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2015-06-21
  • 2011-05-27
  • 1970-01-01
相关资源
最近更新 更多