Android Cordova诊断插件不工作

Android Cordova诊断插件不工作,android,cordova,phonegap-plugins,phonegap,Android,Cordova,Phonegap Plugins,Phonegap,我使用诊断插件来获取位置是否打开的信息。该插件一直工作正常,直到我因为代码中的一些问题将其删除 现在,当我在同一个应用程序中再次添加插件时,它就不起作用了 同一个插件正在我为演示目的创建的另一个应用程序中工作 我还尝试了诊断插件的旧版本 function checkLocationEnabled(){ cordova.plugins.diagnostic.isLocationEnabled(function(enabled){ alert("Location is " +

我使用诊断插件来获取位置是否打开的信息。该插件一直工作正常,直到我因为代码中的一些问题将其删除

现在,当我在同一个应用程序中再次添加插件时,它就不起作用了

同一个插件正在我为演示目的创建的另一个应用程序中工作

我还尝试了诊断插件的旧版本

function checkLocationEnabled(){
    cordova.plugins.diagnostic.isLocationEnabled(function(enabled){
        alert("Location is " + (enabled ? "enabled" : "disabled"));
        alert(enabled);
        if(enabled == false){
            cordova.plugins.locationAccuracy.canRequest(function(canRequest){
                if(canRequest){
                    cordova.plugins.locationAccuracy.request(function(){
                        alert("GPS turned on");
                        setLatitudeLongitude();
                    }, function (error){
                        alert("Request failed");
                        if(error){
                            // Android only
                            alert("error code="+error.code+"; error message="+error.message);
                            if(error.code !== cordova.plugins.locationAccuracy.ERROR_USER_DISAGREED){
                                if(window.confirm("Failed to automatically set Location Mode to 'High Accuracy'. Would you like to switch to the Location Settings page and do this manually?")){
                                    cordova.plugins.diagnostic.switchToLocationSettings();
                                }
                            }
                        }
                    }, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY // iOS will ignore this
                    );
                }
            });
        } else if (enabled == true){
            setLatitudeLongitude();
        }
    }, function(error){
        alert("The following error occurred: "+error);
    });
}
我的config.xml文件中的条目

<plugin name="cordova.plugins.diagnostic" spec="~3.6.5" />

Cordova版本:6.5.0

已安装的平台: 安卓6.2.3 浏览器4.1.0 ios 4.3.1

<preference name="android-minSdkVersion" value="14" />

尝试在chrome上进行调试,结果显示错误“无法读取未定义的属性诊断”

另外,我使用的是Windows7,我已经在不同版本的android 5、5.1、6.0上测试了相同的应用程序。(三星+索尼)

它以前工作并显示“位置已启用/禁用”警报

它显示未定义的错误“无法读取属性isLocationEnabled”

这表示
cordova.plugins.diagnostic
对象不可用

这通常是由于在触发
deviceready
事件之前试图调用插件造成的,因为Cordova在运行时动态加载插件的JS组件


另一个潜在原因是插件未正确安装到项目中-如果源代码中列出了
diagnostic.js
,请检查Chrome开发工具。如果不存在,请执行
cordova platform rm android和&cordova platform add android
以重建本机android项目。

您需要比“它不工作”更具体。描述预期行为与实际行为。提供测试环境的详细信息,例如运行Android 7.1.1的设备。如果生成了JS或本机错误消息,请发布它们:尝试将Chrome Dev工具连接到Webview以查看JS错误,并在代码中放置断点以逐步完成调试。@DaveAlden完成了我检查了浏览器,diagnostic.JS未在源代码中列出。此外,我确实删除了android平台,并再次添加了它。还是同一个问题。应用程序中的plugins文件夹包含cordova.plugins.diagnostic,config.xml中有一个关于它的条目,但它仍然不工作。
我检查了浏览器
-你是说连接到Android设备的Chrome DevTools(
cordova run Android
),对吗?因为插件当然不能在浏览器环境下工作(
cordova run browser
),因为它需要一个本地移动环境是的,我再次删除了android平台,再次添加。将我的手机与DevTools“cordova run android”连接。插件第一次正常工作时,出现警告“位置已禁用”。当我第二次启动应用程序时,它再次无法工作。控制台显示“无法读取未定义的属性诊断”。最终通过在设备就绪函数中调用此函数解决了此问题。谢谢你@DaveAlden