web-dev-qa-db-ja.com

クラスcom.google.Android.maps.MapViewの膨張エラー

簡単なマップチュートリアルを実行しています http://developer.Android.com/resources/tutorials/views/hello-mapview.html しかし、このエラーが発生します。私はAndroidに慣れていませんが、インターネットで提供されているすべてのソリューションを実行しようとしましたが、まだ成功していません。助けてください。私のメインの.xmlは以下のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<com.google.Android.maps.MapView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/mapview"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:clickable="true"
    Android:apiKey="***"
/>

マニフェストファイルはこれです

18
zeshu

私はこの問題を抱えていて、次の2つの手順で解決しました。

1)AndroidManifest.xmlファイルのapplication(important)要素に次の行を入力します。

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

2)アクティビティの代わりにMapActivityを拡張します。

楽しい!

52
Bobs

メインクラスをMapActivityとして拡張しましたか?

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

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

私は同じ問題を抱えていました、そしてこれを検索する約3時間は私がそれを修正するためにしたことです、すべてマニフェストで。

1)私のマニフェストでは、このコードは適切な場所にありませんでした

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

ここにあるはずです

    <application>

このような

    <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
     package="com.example.package.name">
      ...
      <application Android:name="MyApplication" >
        <uses-library Android:name="com.google.Android.maps" />
        ...
      </application>
      ...
    </manifest>

2)マニフェストのどこかで生理を失った

    <activity 
        Android:name="MyClass" //*****should be Android:name=".MyClass"***
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MyClass />

            <category Android:name="Android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

3)下にある最小SDKバージョンを指定しませんでした

    <manifest> 

コード:

    <uses-sdk Android:minSdkVersion="7" />

4)デバッグモードでEclipseを介してマップを機能させるには、cmdまたはターミナルで次の指示に従います http://www.buzztouch.com/resources/Obtaining_a_Google_Maps_API_Key_v1.0.pdf

これが誰かに役立つことを願っています

5
tricknology

問題がありました。 Activityの代わりにMapActivityを拡張するだけです。

3
ManJan

以下は元の質問者のエラーではなかったと思いますが、私の問題が同じエラーメッセージにつながったので、将来誰かがそれに遭遇した場合に備えて追加したほうがよいと思いました。

他のすべての良いヒントを確認しましたが、プロジェクトに欠けているものはありませんでした。

最終的に私にとって問題を解決したのは、完全なパッケージ名を含むレイアウトでMapViewを宣言するのを忘れたことでした。 EclipseもLintもこれについて教えてくれませんでした:

<com.google.Android.maps.MapView
    ...
    />
1
sunadorer

これをMapViewのxml宣言に挿入します

xmlns:Android="http://schemas.Android.com/apk/res/Android"
1
Jayson Tamayo

アプリケーションを実行しているエミュレーターには、google mapjarがありません。したがって、エミュレータを作成しますGoogle APIそこでアプリケーションを実行します。

画像を参照して、GoogleAPIでエミュレーターを作成します

enter image description here

1

タグを使用することに加えてグーグルマップを操作する

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

タグで、別のタグを使用します

<uses-permission Android:name="Android.permission.INTERNET"/>

タグの内側で完了です。

ただし、このアプリケーションはGoogle Inc. APIと互換性のあるAVDで実行する必要がありますが、Android APIでは実行しないでください。

もう1つの重要なことは、SHA1またはその他のプロトコルAPIキーの代わりにMD5APIキーを使用していることを確認することです。

1
Chandra Sekhar

上記のすべての手順を実行したが、MapViewにapi-keyが指定されていない場合でも、この例外が発生します。 googleから取得したapi-key を追加するだけです

<com.google.Android.maps.MapView
        Android:id="@+id/mapview"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:clickable="true" 
         Android:apiKey = "api-key_goes_here"
  >
0
Jeevan