web-dev-qa-db-ja.com

アプリケーションエラーはディレクトリです(file:///#Android_asset/www/index.html)

Phonegapを使用してAndroidでアプリケーションを開発しています。スマートフォンでテストすると、このエラーが発生しますApplication Error Is a directory (file:///#Android_asset/www/index.html)スマートフォンにインターネット接続がない場合にのみ、このエラーが発生します。

助言がありますか?

18
Vanddel

ここで答えを見つけました: 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から、静かに失敗するアプリケーションに移動します。

8
Vanddel

これは、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フォルダー内にローカルに配置することでした。これで問題が解決しました。

13
GenieWanted

たとえば、「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>
4
tionne jones

答えを見つけました。

<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>

これは魔法のようなものです。できます。

みんな応援します。

1
user2981259

空白のアクセスタグは、すべての外部リソースへのアクセスを許可します。

<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.
-->

お役に立てれば。

0
Ferenju

ページにphonegap.jsまたはcordova.jsスクリプトが含まれていることを確認してください。これは、モバイルデバイスでのみ機能します。

0
Nätu

私は「 quick started guie 」に従っていますが、同じ問題があります。しかし、私はそれを解決しました。私の問題は、ダウンロードされた電話のギャップとそれに続く詐欺の不一致でした。

この詳細を確認する必要があります。-intex.htmlに、正しいjsスクリプトバージョン(たとえば:cordova-2.7.0.js)をリンクします-ダウンロードしたphonegabバージョンと一致する必要があります。リンクされたphonegabバージョンとjsスクリプトは一致する必要があります。

これがお役に立てば幸いです。

0
Bachi