代码之家  ›  专栏  ›  技术社区  ›  Flutterian

Android-此.cordova.getActivity().getApplicationContext()的空指针异常

  •  1
  • Flutterian  · 技术社区  · 8 年前

    我已经为android创建了插件。现在在插件中,我想访问应用程序上下文。

    我得到了下面的解决方案来获取CordovaPlugin类的上下文

    Context context = this.cordova.getActivity().getApplicationContext()
    

    但在运行时,它会抛出以下错误

    java.lang.NullPointerException: Attempt to invoke interface method 'android.app.Activity org.apache.cordova.CordovaInterface.getActivity()' on a null object reference
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at cordova.plugin.testpayment.TestPayment.<init>(TestPayment.java:25)
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at java.lang.Class.newInstance(Native Method)
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.instantiatePlugin(PluginManager.java:492)
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:169)
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at org.apache.cordova.PluginManager.exec(PluginManager.java:122)
    10-24 01:25:41.930 16692-16751/io.ionic.starter W/System.err:     at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
    10-24 01:25:41.931 16692-16751/io.ionic.starter W/System.err:     at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
    10-24 01:25:41.931 16692-16751/io.ionic.starter W/System.err:     at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
    10-24 01:25:41.931 16692-16751/io.ionic.starter W/System.err:     at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:9)
    10-24 01:25:41.931 16692-16751/io.ionic.starter W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
    10-24 01:25:41.931 16692-16751/io.ionic.starter W/System.err:     at android.os.Looper.loop(Looper.java:154)
    

    我可以把错误看作是错误 NullPointerException .

    我能知道有什么问题吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Chetan    8 年前

    请用这个

    Context context = IS_AT_LEAST_LOLLIPOP ? cordova.getActivity().getWindow().getContext() : cordova.getActivity().getApplicationContext();