160

起動時にアプリが停止する (サーバーへの接続に失敗しました)

PhoneGap BUILD を使用して作成している Android アプリケーションがあります。アプリは以前は正常に動作していましたが、アプリを改良した後にこのエラーが発生しているようです (一部の UI の変更のみ)。

1)アプリを起動すると(通常)次のようになります。

アプリケーション エラー - サーバーへの接続に失敗しました。(file:///android_asset/www/index.html)

これが質問の重複である場合は申し訳ありません。ここで同様の質問をいくつか見ましたが、完璧な答えや解決策を見つけることができませんでした。私の場合のように、最後の変更まで正常に機能していました。

4

17 に答える 17

73

あなたが言ったように、同じトピックについて多くの重複した質問があります。どのようにあなたの状況を説明します。

index.htmlを呼び出すためのタイムアウトを追加することで、問題が解決する場合があります

super.setIntegerProperty("loadUrlTimeoutValue", 70000);つまり、次の行の上に、activity.javaファイル(src / com / yourProj /-/ youractivity.java内) を追加する必要があります。super.loadUrl("file:///android_asset/www/index.html");

説明:

これは、次の理由で発生する可能性があります

主な理由:問題はエミュレータの速度が原因である可能性が高いため、ネットワークが遅すぎるため、タイムリーに通信を完了します。

これは次の理由で発生する可能性があります。

  1. コード/データ/画像のサイズが大きすぎます(UIを変更したと言ったように、画像のサイズが大きい可能性があるため、いくつかの画像を使用していると思います)
  2. スクリプトのループが無限または長い場合があるため、ロードに時間がかかりすぎます。
  3. 使用するスクリプトが多すぎます(jQuery、iscrollなど。プラグインまたはスクリプトの数が多い)
于 2012-09-07T17:43:28.367 に答える
24

これが実用的なソリューションです

新しいページを作成する main.html

例:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./index.html';
   </script>
  </head>
  <body>
  </body>
</html>

mainactivity.java で以下を変更します

super.loadUrl("file:///android_asset/www/index.html");

super.loadUrl("file:///android_asset/www/main.html");

アプリケーションをビルドすると、低速な接続でも動作します

参照

注: これは 2013 年に見つけた回避策です。

于 2013-03-26T04:10:53.253 に答える
10

次のようなリモートでリンクされた jQuery ファイルを削除してください。 https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

代わりに、このファイルをダウンロードしてローカルの js フォルダーから読み込み、URI を作成します。

js/jquery.min.js

于 2013-03-12T11:03:32.557 に答える
6

index.html の外部スクリプトを削除します

これを変える:

<script src="http://code.highcharts.com/highcharts-more.js"></script>

<script src="project_folder/highcharts-more.js"></script>
于 2016-03-16T14:04:12.697 に答える
5

同様の問題があり、上記の提案に基づいて、最初に「super.setIntegerProperty("loadUrlTimeoutValue", 70000);」を追加しました。しかし、それは役に立ちませんでした。そこで、Project -> Clean を試してみましたが、うまくいき、今すぐアプリを起動できます!

アビナッシュ...

于 2014-04-11T10:43:32.410 に答える
5

これを試して、

1.index.html の名前を「main.html」に変更します</p>

2.新しい「index.html」を作成し、次の内容を入れます。

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./main.html';
   </script>
  <body>
  </body>
</html>

3.アプリをリビルド!もうエラーはありません。

于 2015-09-25T06:04:17.267 に答える
4

私のプロジェクトでも同じでした。

「 super.setIntegerProperty("loadUrlTimeoutValue", 70000); 」を試しましたが、役に立ちませんでした。

すべてのファイルが適切にリンクされていることを確認し [CSS、JS ファイルなど]、w3c バリデーターを使用して HTML を検証し [ http://validator.w3.org/#validate_by_upload ] 、プロジェクトを消去 [ Project -> Clean ]

同じエラーなしでロードおよび実行されるようになりました。

お役に立てれば

于 2013-01-23T10:06:24.953 に答える
1

私の場合、イオンを使用していて、ダイアログを閉じてエミュレーターのアプリに移動し、代わりにそこからアプリを実行しました。これはうまくいきました。タイムアウトの問題だったので、ここからそのアイデアを得ました。

于 2014-05-17T03:42:24.207 に答える
1

ビジュアルスタジオを使用している場合。config.xml を変更した後、これが必要になることがあります

クリーン ビルド ソリューションでアプリを再構築する

それは私のために働いています。

于 2017-04-03T06:52:51.750 に答える
1

私は同じ問題に直面していました。私のインデックスには、「on device ready」機能と「document.ready」機能の両方があることに気付きました。そのため、それらのいずれかを削除すると問題が解決しました:)

于 2018-10-30T14:19:12.047 に答える
-8

このエラーが発生するもう 1 つの理由は次のとおりindex.htmlです.../YourApp/www/

イオンガイドに従っただけで、手順の1つは次のとおりです。

$ rm www/index.html

iOS では、ビルド中にコンパイラが代わりにデフォルトの HTML を使用するため、これは問題ありません。ただし、Android 用にビルドする場合、例index.htmlは使用されません。調べるのに時間がかかりました(「iOSでは動作するのに、Androidでは動作しないのはなぜですか...?」)

簡単な解決策: index.html を作成し、下に保存し.../YourApp/www、再構築します。

于 2014-06-05T15:03:34.393 に答える