簡単なマップチュートリアルを実行しています 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="***"
/>
マニフェストファイルはこれです
私はこの問題を抱えていて、次の2つの手順で解決しました。
1)AndroidManifest.xmlファイルのapplication(important)要素に次の行を入力します。
<uses-library Android:name="com.google.Android.maps" />
2)アクティビティの代わりにMapActivityを拡張します。
楽しい!
メインクラスを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;
}
}
私は同じ問題を抱えていました、そしてこれを検索する約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
これが誰かに役立つことを願っています
問題がありました。 Activityの代わりにMapActivityを拡張するだけです。
以下は元の質問者のエラーではなかったと思いますが、私の問題が同じエラーメッセージにつながったので、将来誰かがそれに遭遇した場合に備えて追加したほうがよいと思いました。
他のすべての良いヒントを確認しましたが、プロジェクトに欠けているものはありませんでした。
最終的に私にとって問題を解決したのは、完全なパッケージ名を含むレイアウトでMapViewを宣言するのを忘れたことでした。 EclipseもLintもこれについて教えてくれませんでした:
<com.google.Android.maps.MapView
...
/>
これをMapViewのxml宣言に挿入します
xmlns:Android="http://schemas.Android.com/apk/res/Android"
アプリケーションを実行しているエミュレーターには、google mapjarがありません。したがって、エミュレータを作成しますGoogle APIそこでアプリケーションを実行します。
画像を参照して、GoogleAPIでエミュレーターを作成します
タグを使用することに加えてグーグルマップを操作する
<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キーを使用していることを確認することです。
上記のすべての手順を実行したが、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"
>