Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 只有在我签署APK后,Google Analytics才会导致Cordova应用程序出错_Android_Cordova_Google Analytics_Cordova Plugins - Fatal编程技术网

Android 只有在我签署APK后,Google Analytics才会导致Cordova应用程序出错

Android 只有在我签署APK后,Google Analytics才会导致Cordova应用程序出错,android,cordova,google-analytics,cordova-plugins,Android,Cordova,Google Analytics,Cordova Plugins,我正在使用Ionic/Cordova应用程序。当我处于调试模式时,一切正常,代码如下: $ionicPlatform.ready(function() { if (typeof analytics !== "undefined") { analytics.startTrackerWithId("UA-x-x"); } else { console.log("Google Analytics Unavailable"); } }); 无论

我正在使用Ionic/Cordova应用程序。当我处于调试模式时,一切正常,代码如下:

$ionicPlatform.ready(function() {

    if (typeof analytics !== "undefined") {
        analytics.startTrackerWithId("UA-x-x");
    } else {
        console.log("Google Analytics Unavailable");
    }
});
无论哪个模板(页面)需要跟踪,我都会将其添加到其控制器:

analytics.trackView('my-page');
但在我用密钥库文件对应用程序进行签名,然后安装apk后,应用程序会被卡在
index.html
页面上,即错误在于任何运行分析的模板。我检查了日志,发现了这个:

D/CordovaLog(29315): file:///android_asset/www/lib/ionic/js/ionic.bundle.js: Line 19387 : ReferenceError: analytics is not defined
D/CordovaLog(29315):     at new <anonymous> (file:///android_asset/www/js/controllers.js:224:5)
D/CordovaLog(29315):     at invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11994:17)
D/CordovaLog(29315):     at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:12002:27)
D/CordovaLog(29315):     at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16255:28
D/CordovaLog(29315):     at self.appendViewElement (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47320:24)
D/CordovaLog(29315):     at Object.switcher.render (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:45864:41)
D/CordovaLog(29315):     at Object.switcher.init (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:45784:20)
D/CordovaLog(29315):     at self.render (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47225:14)
D/CordovaLog(29315):     at self.register (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47181:10)
D/CordovaLog(29315):     at updateView (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:50834:23)
D/CordovaLog(29315):file:///android_asset/www/lib/ionic/js/ionic.bundle.js: 第19387行:引用错误:未定义分析
D/CordovaLog(29315):在纽约(file:///android_asset/www/js/controllers.js:224:5)
D/CordovaLog(29315):在调用时(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:11994:17)
D/CordovaLog(29315):在Object.instantiate(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:12002:27)
D/CordovaLog(29315):在file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16255:28
D/CordovaLog(29315):位于self.appendViewElement(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47320:24)
D/CordovaLog(29315):位于Object.switcher.render(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:45864:41)
D/CordovaLog(29315):位于Object.switcher.init(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:45784:20)
D/CordovaLog(29315):自渲染(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47225:14)
D/CordovaLog(29315):自动登记(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:47181:10)
D/CordovaLog(29315):在updateView(file:///android_asset/www/lib/ionic/js/ionic.bundle.js:50834:23)

由于问题是在奇怪的情况下发生的,因此解决方案必须更加奇怪。在我的
$ionicPlatform.ready
函数中,我去掉了未定义的周围的双引号。现在代码看起来像:

$ionicPlatform.ready(function() {

    if (typeof analytics !== undefined) {
        analytics.startTrackerWithId("UA-x-x");
    } else {
        console.log("Google Analytics Unavailable");
    }
});

提到这种可能性,请点击此处。

错误为“分析未定义”。你能在platforms/android中查看你的插件文件夹吗?这是谷歌分析吗?由于某些原因,你的插件对你的应用程序不可见。是的,它是可用的。而且,如果你错过了它,插件在apk没有签名的情况下也能工作。是的,这很奇怪。在日志中的这个之前是否有任何错误。此错误意味着插件不“可见”。因为插件正如你们所说的那个样存在,所以在加载cordova上下文时一定是出现了一些错误,可能是在这个错误之前,导致插件不可用。重新加载页面时,web浏览器控制台中是否有任何内容?在web浏览器上,它会显示“Google Analytics Unavailable”,这很好,因为它在浏览器上无法工作。不,没有任何与Cordova相关的错误(我正在使用
adb logcat CordovaLog:D*:S
对它们进行过滤)。如果您知道这不是读取日志的正确方式,请务必让我知道。当我说要在浏览器中调试时,我想在设备上运行应用程序,但要在浏览器上调试。请检查此链接。