AndroidでGoogleマップv2を表示するデモを試しました。
Javaコードは、
package com.example.gpslocator;
import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Xmlコードは、
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
>
<fragment
Android:id="@+id/map"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:name="com.google.Android.gms.maps.MapFragment"/>
</LinearLayout>
Manifest.xmlにAPIキーを追加しました。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.gpslocator"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk
Android:minSdkVersion="3"
Android:targetSdkVersion="17" />
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES" />
<!--
The following two permissions are not required to use
Google Maps Android API v2, but are recommended.
-->
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<permission
Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
Android:protectionLevel="signature" />
<uses-permission Android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
<uses-feature
Android:glEsVersion="0x00020000"
Android:required="true" />
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<activity
Android:name="com.example.gpslocator.MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
Android:name="com.google.Android.maps.v2.API_KEY"
Android:value="MY_API_KEY" />
</application>
</manifest>
アプリケーションを実行しようとすると、突然終了します。デバッグすると、「Java.lang.NoClassDefFoundError:com.google.Android.gms.R $ styleable」というエラーが表示されました。アプリケーションにgoogle-play-services.jarファイルを追加しました。
Logcatは、
04-09 05:33:53.677: E/Trace(1053): error opening trace file: No such file or directory (2)
04-09 05:33:53.807: W/ActivityThread(1053): Application com.example.gpslocator is waiting for the debugger on port 8100...
04-09 05:33:53.878: I/System.out(1053): Sending WAIT chunk
04-09 05:33:54.207: I/dalvikvm(1053): Debugger is active
04-09 05:33:54.288: I/System.out(1053): Debugger has connected
04-09 05:33:54.288: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.487: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.697: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.897: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.097: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.297: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.498: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.708: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.907: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:56.167: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:56.367: I/System.out(1053): debugger has settled (1344)
04-09 05:34:06.097: W/dalvikvm(1053): VFY: unable to resolve static field 867 (MapAttrs) in Lcom/google/Android/gms/R$styleable;
04-09 05:34:06.097: D/dalvikvm(1053): VFY: replacing opcode 0x62 at 0x000e
04-09 05:40:21.278: D/AndroidRuntime(1053): Shutting down VM
04-09 05:40:21.278: W/dalvikvm(1053): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-09 05:40:21.398: E/AndroidRuntime(1053): FATAL EXCEPTION: main
04-09 05:40:21.398: E/AndroidRuntime(1053): Java.lang.NoClassDefFoundError: com.google.Android.gms.R$styleable
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.google.Android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.google.Android.gms.maps.MapFragment.onInflate(Unknown Source)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.Activity.onCreateView(Activity.Java:4716)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:680)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:746)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:489)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:396)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:352)
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:270)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.Activity.setContentView(Activity.Java:1881)
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.example.gpslocator.MainActivity.onCreate(MainActivity.Java:12)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.Activity.performCreate(Activity.Java:5104)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1080)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2144)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2230)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.os.Handler.dispatchMessage(Handler.Java:99)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.os.Looper.loop(Looper.Java:137)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Android.app.ActivityThread.main(ActivityThread.Java:5041)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Java.lang.reflect.Method.invokeNative(Native Method)
04-09 05:40:21.398: E/AndroidRuntime(1053): at Java.lang.reflect.Method.invoke(Method.Java:511)
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
04-09 05:40:21.398: E/AndroidRuntime(1053): at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
04-09 05:40:21.398: E/AndroidRuntime(1053): at dalvik.system.NativeStart.main(Native Method)
04-09 05:40:26.487: I/Process(1053): Sending signal. PID: 1053 SIG: 9
プロパティ内-> Android->
どなたか助けてください。参照がありませんか?
ここで答えを見てください:
GoogleマップAndroid API v2-サンプルコードがクラッシュします
質問には別の例外がリストされていますが、回答には具体的な問題が具体的に示されています。
具体的には、google-play-services_lib
をprojectとしてインポートすることが重要です。File > Import > Android > Existing Android Code Into Workspace
を選択し、[次へ]をクリックします。
[参照...]を選択し、[Android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib
と入力して、[完了]をクリックします。
(「サンプルコード」の https://developers.google.com/maps/documentation/Android/intro を参照)
次に、リンクされた回答の指示に従います。
- 「google-play-services_lib」プロジェクトの実際のソースをインポートし、>Androidライブラリとしてリンクします。
- これは、プロジェクト->プロパティ-> Android->ライブラリ、追加-> google-play-services_lib(プロジェクトを右クリックして[プロパティ]を選択し、次に[Android]を選択します)で行います。
- しないでくださいしないでくださいプロジェクトの「Javaビルドパス」を介して依存プロジェクトとして追加しますが、私にとってはうまくいきませんでした。
小切手 AndroidManifest.xml
google-play-services_libプロジェクトのファイル。する必要があります:
package="com.google.Android.gms"
同じ問題があります。
しかし、私がやったのは、com.google.Android.gmsバージョンコードthis 3265130を使用したことです。
Com.google.Android.gmsバージョンコードthis 4452000を使用するのではなく、これは最新の問題です。問題が何であるかわかりませんが、私にとってはその作業です。
[アレクサンダーによって与えられた手順に従ってください]
新しいアップデートでうまく動作するかもしれません。
新しいアップデートでうまく動作するかもしれません。
google-play-services_libをインポートするときは、「プロジェクトをワークスペースにコピーする」にチェックを入れます。わたしにはできる!
同じ問題がありましたが、google-play-services_libプロジェクトを右クリックして更新することで解決できました。何らかの理由で、プロジェクトがEclipseと同期されず、エラーが発生していました。
その地図には多くの問題がありました。しかし、最終的には成功し、ビルドします!私はEclipseを使用せず、単にコマンドラインを使用します。最初に、google-play-services_lib/libsからmyProject/libs /ファイルにコピーし、ant debugを実行するだけだと思います... Android emulatorにインストールした後、エラーJava .lang.NoClassDefFoundError:com.google.Android.gms.R $ styleable
翌日以降の時間検索ソリューション:
1)最初に、カタログsdk/extras/google /.../ google-play-services_libをmyProjectカタログにコピーします。
2)ユーザーdzeikeiが言ったようにAndroid update project --target <your target> -p myProject/google-play-services_lib
を実行します(ターゲットexecをチェックするには:Android list target
)
3)myProjectフォルダーの「project.properties」ファイルを編集し、この行を最後のAndroid.library.reference.1 = google-play-services_libに追加するか、Android update project --target Android-19 --path myProject --library myProject/google-play-services_lib
を実行します
4)ant clean
、ant debug
....しかし、いくつかのエラーがありました。 nullなどを返す(頭痛を起こす)。しかしその後、antはフォルダーmyProject/google-play-services_libにbinフォルダーとgenフォルダーを作成します
5)年齢の多くの解決策を探して、antデバッグがエラーを返した理由を見つけた後、最終的に断片化し、myProject/google-play-services_lib /からmyProject/binとmyProject/genにカタログbinとgenをコピーします
6)次に、以前にポイント3で追加した行を削除します。#Android.library.reference.1 = google-play-services_libの上に、ファイルmyProject/google-play-services_lib/libs/google-play-services.jarをコピーします。 myProject/libs/google-play-services.jar
7)ant debug
を実行します
adb install -r bin/myProject-debug.apk
そして最後に、Android emulator :)上の私のprojectApplicationでGoogleマップを見ました
もちろん、API_KEYのような他のstufや、プロジェクトをコンパイルする前に行ったGoogleマップのチュートリアルからの追加と許可。 promtなしで地図を見るには、例えば。 「Instal Goodle Play Services」は、すでにインストールされているGoogleサービスでエミュレータを使用します。 AVD ManagerリストからGoogle API(Google Inc.)を使用しました。これがあなたのお役に立てば幸いです。
google-play-services_lib
プロジェクトへのファイルパスには、[A-Z,a-z]
ではなくÄÖÜ
のみを含める必要があります。新規にインポートするよりもD:\google-play-services_lib\
に移動しましたが、正常に機能します!
英語すみません;-)
プロジェクトgoogle-play-services_libをIDEにインポートした場合は、そのプロパティを確認することを忘れないでください。google-play-services_libは、同じバージョンのAndroidプロジェクトで使用するSDK。たとえば、プロジェクトとgoogle-play-servicesはどちらもAndroid 4.4.2。でビルドされます。その後、libが正しく構築されました。
最後に、次のメタタグを<application> ... </application>
タグ内のAndroidManifest.xmlに追加する必要があります。
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version" />
John Oleynikのステップを見てください:www.stackoverflow.com/a/15709686/20146。それでうまくいきました。
google-play-services_libとデモプロジェクトの両方をワークスペースにインポートします。 Android-support-v4.jarをデモプロジェクトの「libs」フォルダーにコピーします。次に、プロジェクトのプロパティ-> Android->ライブラリ」、そしてgoogle-play-services_libを追加します