Android 带有网络信息cordova插件的空指针

Android 带有网络信息cordova插件的空指针,android,cordova,Android,Cordova,当我在“设置”部分停用移动数据时,出现以下错误消息。有人能帮忙吗?提前谢谢 崩溃日志 06-04 13:14:45.569: E/PluginManager(23862): Uncaught exception from plugin 06-04 13:14:45.569: E/PluginManager(23862): java.lang.NullPointerException 06-04 13:14:45.569: E/PluginManager(23862): at org.ap

当我在“设置”部分停用移动数据时,出现以下错误消息。有人能帮忙吗?提前谢谢

崩溃日志

06-04 13:14:45.569: E/PluginManager(23862): Uncaught exception from plugin
06-04 13:14:45.569: E/PluginManager(23862): java.lang.NullPointerException
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.networkinformation.NetworkManager.getConnectionInfo(NetworkManager.java:201)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.networkinformation.NetworkManager.execute(NetworkManager.java:133)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:65)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.PluginManager.execHelper(PluginManager.java:242)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.PluginManager.exec(PluginManager.java:227)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.ExposedJsApi.exec(ExposedJsApi.java:53)
06-04 13:14:45.569: E/PluginManager(23862):     at org.apache.cordova.CordovaChromeClient.onJsPrompt(CordovaChromeClient.java:227)
06-04 13:14:45.569: E/PluginManager(23862):     at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:738)
06-04 13:14:45.569: E/PluginManager(23862):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-04 13:14:45.569: E/PluginManager(23862):     at android.os.Looper.loop(Looper.java:137)
06-04 13:14:45.569: E/PluginManager(23862):     at android.app.ActivityThread.main(ActivityThread.java:4517)
06-04 13:14:45.569: E/PluginManager(23862):     at java.lang.reflect.Method.invokeNative(Native Method)
06-04 13:14:45.569: E/PluginManager(23862):     at java.lang.reflect.Method.invoke(Method.java:511)
06-04 13:14:45.569: E/PluginManager(23862):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
06-04 13:14:45.569: E/PluginManager(23862):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
06-04 13:14:45.569: E/PluginManager(23862):     at dalvik.system.NativeStart.main(Native Method)
06-04 13:14:45.589: E/AndroidRuntime(23862): FATAL EXCEPTION: main
06-04 13:14:45.589: E/AndroidRuntime(23862): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000010 (has extras) } in org.apache.cordova.networkinformation.NetworkManager$1@4181a808
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:737)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.os.Handler.handleCallback(Handler.java:605)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.os.Handler.dispatchMessage(Handler.java:92)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.os.Looper.loop(Looper.java:137)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.app.ActivityThread.main(ActivityThread.java:4517)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at java.lang.reflect.Method.invokeNative(Native Method)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at java.lang.reflect.Method.invoke(Method.java:511)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at dalvik.system.NativeStart.main(Native Method)
06-04 13:14:45.589: E/AndroidRuntime(23862): Caused by: java.lang.NullPointerException
06-04 13:14:45.589: E/AndroidRuntime(23862):    at org.apache.cordova.networkinformation.NetworkManager.getConnectionInfo(NetworkManager.java:201)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at org.apache.cordova.networkinformation.NetworkManager.updateConnectionInfo(NetworkManager.java:171)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at org.apache.cordova.networkinformation.NetworkManager.access$0(NetworkManager.java:168)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at org.apache.cordova.networkinformation.NetworkManager$1.onReceive(NetworkManager.java:110)
06-04 13:14:45.589: E/AndroidRuntime(23862):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
06-04 13:14:45.589: E/AndroidRuntime(23862):    ... 9 more
///////////////////////////////////////////

<!DOCTYPE html>

<html>
    <head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <meta name="msapplication-tap-highlight" content="no" />
    <title>myapp</title>
    </head>
    <body>
        <div class="app">
            <div id="deviceready">
                <p class="event listening"></p>
                <p class="event received"></p>
                <p id="connexion"></p>
            </div>
        </div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();

            //listener qui se déclenche dès que le mobile est prêt
            //
            document.addEventListener("deviceready", onDeviceReady , false);


            function onDeviceReady() {
                try{
                    checkConnection();
                }
                catch(e){
                    console.log(e);
                }
            }


            function checkConnection() {
                var networkState = navigator.connection.type;

                var states = {};
                states[Connection.UNKNOWN]  = 'connexion de type inconnu';
                states[Connection.ETHERNET] = 'connexion Ethernet';
                states[Connection.WIFI]     = 'connexion WiFi';
                states[Connection.CELL_2G]  = 'connexion 2G';
                states[Connection.CELL_3G]  = 'connexion 3G';
                states[Connection.CELL_4G]  = 'connexion 4G';
                states[Connection.CELL]     = 'connexion generique';
                states[Connection.NONE]     = 'pas de connexion internet';

            document.getElementById('connexion').innerHTML='type de la connexion internet : ' +states[networkState];
            }

        </script>
    </body>
</html>
这是我申请的代码

///////////////////////////////////////////

<!DOCTYPE html>

<html>
    <head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <meta name="msapplication-tap-highlight" content="no" />
    <title>myapp</title>
    </head>
    <body>
        <div class="app">
            <div id="deviceready">
                <p class="event listening"></p>
                <p class="event received"></p>
                <p id="connexion"></p>
            </div>
        </div>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();

            //listener qui se déclenche dès que le mobile est prêt
            //
            document.addEventListener("deviceready", onDeviceReady , false);


            function onDeviceReady() {
                try{
                    checkConnection();
                }
                catch(e){
                    console.log(e);
                }
            }


            function checkConnection() {
                var networkState = navigator.connection.type;

                var states = {};
                states[Connection.UNKNOWN]  = 'connexion de type inconnu';
                states[Connection.ETHERNET] = 'connexion Ethernet';
                states[Connection.WIFI]     = 'connexion WiFi';
                states[Connection.CELL_2G]  = 'connexion 2G';
                states[Connection.CELL_3G]  = 'connexion 3G';
                states[Connection.CELL_4G]  = 'connexion 4G';
                states[Connection.CELL]     = 'connexion generique';
                states[Connection.NONE]     = 'pas de connexion internet';

            document.getElementById('connexion').innerHTML='type de la connexion internet : ' +states[networkState];
            }

        </script>
    </body>
</html>

myapp

app.initialize(); //听者问我,你的手机是什么 // 文件。添加的监听器(“deviceready”,OnDeviceraddy,false); 函数ondevicerady(){ 试一试{ 检查连接(); } 捕获(e){ 控制台日志(e); } } 函数checkConnection(){ var networkState=navigator.connection.type; 变量状态={}; 状态[Connection.UNKNOWN]=“connexion de type INCONU'; 状态[Connection.ETHERNET]=“连接以太网”; 状态[Connection.WIFI]=“连接WIFI”; 状态[Connection.CELL_2G]=“connexion 2G”; 状态[Connection.CELL_3G]=“connexion 3G”; 状态[Connection.CELL_4G]=“连接4G”; states[Connection.CELL]='connexion generique'; states[Connection.NONE]=“连接互联网”; document.getElementById('connexion').innerHTML='type de la connexion internet:'+状态[networkState]; }
我花了一整天的时间来解决这个问题。我所做的是,用一个正在工作的旧项目中的相同文件替换NetworkManager.java。
现在,应用程序脱机时不会崩溃。

我也遇到了同样的问题,这为我解决了问题:

cordova plugin rm org.apache.cordova.network-information

cordova plugin add https://github.com/apache/cordova-plugin-network-information
这是一个插件问题。

快跑

cordova plugin rm org.apache.cordova.network-information
cordova plugin add https://github.com/apache/cordova-plugin-network-information

就像MazzCris建议的那样

欢迎来到StackOverflow(SO)!关于SO的问题用英语/J'ai traduit ta anglais,personne répondra sur une question en français;)您是否可以添加导致此问题的代码?谢谢。这似乎是个插件问题。安装当前插件版本(-dev版本)后,异常消失