1

この XML ファイルを使用する場合。私の以下のJavaコードは正常に動作します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF"> 

     <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

このXMLファイルを使い始めると

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.google.android.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:apiKey="0s_fADEBtq0-j_teQ1j-yaoDAivoHHtwN81rJ-g"
        android:clickable="true"
        android:state_enabled="true" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <ListView
            android:id="@+id/listView1"
            android:layout_width="164dp"
            android:layout_height="142dp"
            android:layout_weight="0.33" >
        </ListView>
    </LinearLayout>

</LinearLayout>

Android 画面の上半分に表示Google Mapし、下半分に画像付きの ListView を表示できるようにします。しかし、この XML ファイルを使用するたびに、次のような例外が発生し始めます-

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.weatheractivity/com.example.weatheractivity.MainActivity}: java.lang.ClassNotFoundException: com.example.weatheractivity.MainActivity

以下はJavaコードです: -

public class MainActivity extends MapActivity {

    private ListView listView1;
    private MapView mapView;
    private MapController mapController;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Weather weather_data[] = new Weather[]
                                             {
                new Weather(R.drawable.ic_launcher, "Cloudy"),
                new Weather(R.drawable.ic_launcher, "Showers"),
                new Weather(R.drawable.ic_launcher, "Snow"),
                new Weather(R.drawable.ic_launcher, "Storm"),
                new Weather(R.drawable.ic_launcher, "Sunny")
                                             };

        WeatherAdapter adapter = new WeatherAdapter(this, 
                R.layout.listview_item_row, weather_data);


        mapView = (MapView) findViewById(R.id.mapView);
        // enable Street view by default
        mapView.setStreetView(true);

        mapView.setBuiltInZoomControls(true);

        mapController = mapView.getController();
        mapController.setZoom(15);


        listView1 = (ListView)findViewById(R.id.listView1);

        View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
        listView1.addHeaderView(header);

        listView1.setAdapter(adapter);
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
    }
4

1 に答える 1

2

Maps ライブラリは標準 Android ライブラリの一部ではないため、Android マニフェストで宣言する必要があります。AndroidManifest.xml ファイルを開き、要素の子として次を追加します。

<uses-library android:name="com.google.android.maps"/>

https://developers.google.com/maps/documentation/android/hello-mapview

于 2012-08-19T05:28:36.063 に答える