3

エミュレータで空白の白い画面が表示され、マップが表示されません。

ブラウザに表示されると想定されるものは次のとおりです。[ http://code.google.com/apis/maps/documentation/javascript/examples/layer-georss.html]

マニフェストファイルのコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.apps.mylocations"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MyLocations"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

これが私のレイアウトXMLファイルで、Webビューがあります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

    <WebView android:id="@+id/web_engine"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"/>

</LinearLayout>

Javaコードは次のとおりです。

 package com.apps.mylocations;

        import android.app.Activity;
        import android.os.Bundle;
        import android.webkit.WebView;

        public class MyLocations extends Activity {
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);


                WebView engine = (WebView) findViewById(R.id.web_engine);

                engine.getSettings().setJavaScriptEnabled(true);

                String data = "<html>" + 
        "<head>" + 
        "<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\" />" + 
        "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"/>" + 
        "<title>Google Maps JavaScript API v3 Example: KmlLayer GeoRSS</title>" + 
        "<link href=\"http://code.google.com/apis/maps/documentation/javascript/examples/default.css\" rel=\"stylesheet\" type=\"text/css\" />" + 
        "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>" + 
        "<script type=\"text/javascript\">" + 
        "function initialize() {" +
          "var myLatlng = new google.maps.LatLng(49.496675,-102.65625);" +
          "var myOptions = {" +
            "zoom: 4," +
            "center: myLatlng," +
            "mapTypeId: google.maps.MapTypeId.ROADMAP" +
          "}" +

          "var map = new google.maps.Map(document.getElementById(\"map_canvas\"), myOptions);" +

          "var georssLayer = new google.maps.KmlLayer('http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss');" +
          "georssLayer.setMap(map);" +
        "}" +
        "</script>" + 
        "</head>" + 
        "<body onload=\"initialize()\">" + 
          "<div id=\"map_canvas\"></div>" + 
        "</body>" + 
        "</html>";


           engine.loadData(data, "text/html", "UTF-8");


            }
        }
4

3 に答える 3

3

既存の質問のヒントに従いましたか?

Androidアプリケーションを公開した後、Googleマップが表示されませんか?

私のマップがグリッドのみを表示する理由を誰か知っていますか

  • マニフェストで与えられたインターネット許可?
  • マップキーは正しいですか?
于 2010-11-26T08:11:54.880 に答える
1

あなたのコード:

engine.loadData(...)

ネットワーク リソースの読み込みを許可しません。したがって、HTML スニペットはネットワークから多くのリソースをロードしようとするため、まったく機能しません。表示できる内容に制限があります。ドキュメントを確認してください: http://developer.android.com/reference/android/webkit/WebView.html

おそらく、loadDataWithBaseURL の方がうまくいくでしょうか? よくわかりません。コードをロードしようとしましたが、多くのリモート JavaScript を使用しているため、静的/ローカル HTML 文字列からロードすると問題が発生する可能性があります。

編集 12.05.2010:

どこかのサーバーにアクセスできる場合 (簡単)、HTML を公開し、webview で loadUrl メソッドを使用するだけです。正確な手順は、Maps API ドキュメントを使用して、Google 自身から提供されています。

http://code.google.com/apis/maps/articles/android_v3.html http://gmaps-samples.googlecode.com/svn/trunk/articles-android-webmap/

マーク

于 2010-11-29T07:23:11.043 に答える
1

インターネットにアクセスするためにプロキシが必要なネットワークにいますか? はいの場合、エミュレータのプロキシを設定する必要があります。

http://developer.android.com/guide/developing/tools/emulator.html#proxy

于 2010-11-30T22:21:34.837 に答える