私は、WebStorm 6.0.2 で、Cordova 2.9.0 と JQuery 2.0.3 に基づいて、すべて OSX でモバイル アプリケーションを開発しています。結果のアプリは Ripple でテストされています。
私の問題: たとえば、何かをコンソールに送信した場合
console.log('TEST');
次に、ログにエラーが表示されます: exec:Logger.logLevel がありません。さらに悪いことに、このエラーは Ripple のポップアップ ('Logger.logLevel - We think of some stuff') で表示され、デバッグが非常に困難になります。
以前のバージョンの Cordova (2.5.0) でまったく同じプロジェクトを使用すると、このまったく同じエラーは表示されません。したがって、問題は Cordova に固有のものであり、使用されている他のソフトウェアはないようです。
Googleで解決策を検索しましたが、不思議なことに、この問題を抱えている人は他にいないようです...
編集 1:
1 - iOS シミュレーターでプロジェクトを実行してもエラーは表示されません。したがって、問題は Ripple に固有のものです。
2 - Phonegap zip には、すべてのプラットフォーム用の特定の cordova.js ファイルが含まれています。cli を使用して新しい xcode プロジェクトを作成すると、デフォルトで iOS バージョンが使用されます。含まれている OSX バージョンを使用すると、Ripple にエラーは表示されません。しかし、(当然のことながら) OSX バージョンの cordova.js を iOS シミュレーターに使用することはできません。その結果、コルドバ ブリッジがないというエラーが発生します。
編集 2:
3 - 原因が見つかりました: var UseLogger は Cordova 2.6 では false で、2.9 では true に設定されています。
4 - 考えられる解決策: Cordova.js を編集し (あまり編集しないことをお勧めします)、var UseLogger を再度 false に設定します。
Ripple でエラーが発生するコードの下 (申し訳ありませんが、書式設定のためですが、stackoverflow により html コードの入力が非常に難しくなっています)。エラーを示すログの下にも。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="format-detection" content="telephone=no" />
<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" />
<script type="text/javascript" src="js/jquery-2.0.3.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.3.1.js"></script>
<script type="text/javascript" src="js/cordova-2.9.0.js"></script>
<link rel="stylesheet" href="css/jquery.mobile-1.3.1.min.css" />
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
}
</script>
<title><!-- not used in visual app --></title>
</head>
<body>
<div data-role="page" id="pageIndex">
<div data-theme="a" data-role="header" data-position="fixed">
<h3>
</h3>
</div>
<div data-role="content">
<a data-role="button" onclick="console.log('TEST');" href="#">
Console test
</a>
</div>
<div data-role="footer" class="ui-bar" data-position="fixed">
<a data-role="button" href="#" data-icon="info">Info</a>
<a data-role="button" href="#" data-icon="gear">Options</a>
</div>
</div>
</body>
</html>
Viewport target-densitydpi is not supported. index.html:6 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:63342/Keep/cordova_plugins.json:0 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:63342/!gap_exec?1373900241256:0 Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.) js/cordova-2.9.0.js:5638 cordova :: Initialization Finished (Make it so.) js/cordova-2.9.0.js:5638 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:63342/Keep/icon.png:0 Viewport target-densitydpi is not supported. index.html:6 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:63342/Keep/cordova_plugins.json:0 Access made to deprecated symbol: navigator.network.connection. null js/cordova-2.9.0.js:5638 // if the button is clicked, the log below is the result missing exec:Logger.logLevel js/cordova-2.9.0.js:5638 LOG,TEST js/cordova-2.9.0.js:5638 TypeError: Cannot call method 'logLevel' of undefined js/cordova-2.9.0.js:5638 TypeError: Cannot call method 'logLevel' of undefined at module.exports.exec at Object.logger.logLevel (http://localhost:63342/Keep/js/cordova-2.9.0.js:5626:9) at logWithArgs (http://localhost:63342/Keep/js/cordova-2.9.0.js:5598:21) at Object.logger.log (http://localhost:63342/Keep/js/cordova-2.9.0.js:5561:36) at HTMLAnchorElement.onclick (http://localhost:63342/Keep/index.html:29:164) js/cordova-2.9.0.js:5638 Logger js/cordova-2.9.0.js:5638 logLevel js/cordova-2.9.0.js:5638 TEST js/cordova-2.9.0.js:5638 deviceready has not fired after 5 seconds. js/cordova-2.9.0.js:5638 Channel not fired: onCordovaConnectionReady js/cordova-2.9.0.js:5638 Channel not fired: onCordovaInfoReady js/cordova-2.9.0.js:5638