Phonegapを使用してAndroidでアプリケーションを開発しています。スマートフォンでテストすると、このエラーが発生しますApplication Error Is a directory (file:///#Android_asset/www/index.html)
スマートフォンにインターネット接続がない場合にのみ、このエラーが発生します。
助言がありますか?
ここで答えを見つけました: http://dev.wavemaker.com/wiki/bin/wmdoc_6.5/PhoneGap?xpage=print#HTheserverwasunsucessful28file3A2F2F2Fandroidasset2Fwww2Findexhtml29 への接続
6.1サーバーへの接続に失敗しました(file:///Android_asset/www/index.html)
WHERE:Androidデバイスでアプリケーションを起動するとき。
Index.htmlファイル内に配置してリモートリソースを要求すると、Androidデバイスに対して上記のエラーがスローされ、アプリケーションが停止します。Weinreデバッガーは、このエラー。
解決策:リモートリソースの読み込みをindex.htmlから、静かに失敗するアプリケーションに移動します。
これは、index.htmlで、インターネットアクセスを必要とするリソースを使用していることを意味します。 index.htmlを参照し、インターネットから直接リンクされているCSS、javascript、またはCordovaファイルを探します。その場合、関連ファイルをダウンロードしてローカルにする必要があります。
JqueryモバイルJSファイルを次のように直接リンクすると、同じ問題が発生しました。
<script type="CSS/javascript" src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.js">
私がやったのは、jquery.mobile-1.3.0.jsファイルをダウンロードして、wwwフォルダー内にローカルに配置することでした。これで問題が解決しました。
たとえば、「index.html」の名前を「main.html」に変更し、「main.html」にリダイレクトするだけでよい新しい(ダミーの)「index.html」を作成するだけです。
新しい「index.html」のコンテンツ:
<!doctype html>
<html>
<head>
<title>Title</title>
<script>
window.location='./main.html';
</script>
</head>
<body>
</body>
</html>
答えを見つけました。
<head>
タグ内にphonegap.jsを含めます。ビルド時にphonegapで必要です。
<head>
<script src="phonegap.js"></script>
</head>
Phonegap.jsをダウンロードする必要はありません。必要なのは、示されているコードを含めることだけです。ビルド中にphonegapはそれを探して自動的に組み込みます。そうでない場合、ネイティブアプリケーションを実行すると、アプリケーションはphonegapサーバーでphonegap.jsを探しますが、これには時間がかかりすぎます。最終的に、アプリケーションのロードは、表示されているエラーメッセージでタイムアウトします。
うわー!私はこれを信じることができます。私はこの問題にぶつかり、落胆し、phonegapの使用をほとんどあきらめました。しかし、私はPhonegapのウェブサイトでphonegap.jsに関する以下の小見出しの下に読みます
https://build.phonegap.com/docs/app-overview
「PhoneGap APIに引き続きアクセスできることを確認する」
「phonegap.jsを削除したら、アプリケーションがPhoneGap APIにアクセスできることを確認する必要があります。
そのためには、index.htmlで次の参照が行われていることを確認してください。」
<script src="phonegap.js"></script>
これは魔法のようなものです。できます。
みんな応援します。
空白のアクセスタグは、すべての外部リソースへのアクセスを許可します。
<access Origin="*" /> - a wildcard access tag allows access to all external resource.
それ以外の場合は、特定のドメインを指定できます。
-->
<access Origin="127.0.0.1*"/> <!-- allow local pages -->
<!--
<access Origin="http://phonegap.com" /> - allow any secure requests to http://honegap.com/
<access Origin="http://phonegap.com" subdomains="true" /> - same as above, but including subdomains, such as http://build.phonegap.com/
<access Origin="http://phonegap.com" browserOnly="true" /> - only allows http://phonegap.com to be opened by the child browser.
-->
お役に立てれば。
ページにphonegap.jsまたはcordova.jsスクリプトが含まれていることを確認してください。これは、モバイルデバイスでのみ機能します。
私は「 quick started guie 」に従っていますが、同じ問題があります。しかし、私はそれを解決しました。私の問題は、ダウンロードされた電話のギャップとそれに続く詐欺の不一致でした。
この詳細を確認する必要があります。-intex.htmlに、正しいjsスクリプトバージョン(たとえば:cordova-2.7.0.js)をリンクします-ダウンロードしたphonegabバージョンと一致する必要があります。リンクされたphonegabバージョンとjsスクリプトは一致する必要があります。
これがお役に立てば幸いです。