13

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 ファイルを追加しました。

ログキャットは、

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-->

ここに画像の説明を入力

誰か助けてください。参照がありませんか?

4

10 に答える 10

29

ここで回答を参照してください:
Google Maps Android API v2 - サンプル コード クラッシュ
質問には別の例外がリストされていますが、回答には正確な問題が具体的に記載されています。

具体的には、プロジェクトgoogle-play-services_libとしてインポートすることが重要 です: 選択して [次へ] をクリックします。 [参照...] を選択し、 と入力して [完了] をクリックします。 ( 「サンプル コード」の下のhttps://developers.google.com/maps/documentation/android/introを参照してください) 次に、リンクされた回答の指示に従います。
File > Import > Android > Existing Android Code Into Workspace
[android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib


  • 「google-play-services_lib」プロジェクトの実際のソースをインポートし、Androidライブラリとしてリンクします。
    • プロジェクト -> プロパティ -> Android -> ライブラリ、追加 -> google-play-services_lib (プロジェクトを右クリックして [プロパティ] を選択し、[Android] を選択します) でこれを行います。
    • プロジェクトの「Java Build Path」を介して依存プロジェクトとして追加しないでください。それは私にとってはうまくいきませんでした。
于 2013-04-09T05:54:16.663 に答える
6

AndroidManifest.xmlgoogle-play-services_lib プロジェクトのファイルを確認してください。次のようにする必要があります。

package="com.google.android.gms"
于 2013-04-22T21:59:17.043 に答える
1

google-play-services_libをインポートするときは、「プロジェクトをワークスペースにコピーする」にチェックを入れてください。わたしにはできる!

于 2013-05-24T06:15:24.017 に答える
1

同じ問題があります。

しかし、私がしたことは、この 3265130 の com.google.android.gms バージョン コードを使用したことです。

最新のものであるcom.google.android.gmsバージョンコードこの4452000を使用するのではなく、問題が何であるかはわかりませんが、私にとってはうまくいきます。

[アレクサンダーの指示に従ってください]

新しいアップデートでうまくいくかもしれません。

ここに画像の説明を入力

新しいアップデートでうまくいくかもしれません。

ここに画像の説明を入力

于 2014-05-21T12:55:35.670 に答える
1

これと同じ問題があり、 google-play-services_lib プロジェクトを右クリックして更新することで解決できました。何らかの理由で、プロジェクトが Eclipse と同期されず、エラーが発生していました。

于 2013-06-14T15:40:35.627 に答える
0

その地図には多くの問題がありました。しかし、最終的には成功し、ビルドします! コマンドラインだけで、Eclipseは使用しません。最初に、google-play-services_libs/libs から myProject/libs/ ファイルにコピーし、ant デバッグを実行することをお勧めします... Android エミュレーターにインストールした後、エラーjava.lang.NoClassDefFoundError: com.google.android.gms が発生します。 R$スタイル可能

数時間後に解決策を探す:

1)まず、カタログ sdk/extras/google/.../google-play-services_lib を myProject カタログにコピーします。

2)android update project --target <your target> -p myProject/google-play-services_libユーザー dzeikei が言ったように実行します (ターゲット 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 cleanant debug....しかし、いくつかのエラーがありました。たとえば、null を返すなど (頭痛の種)。しかしその後、アリはフォルダー myProject/google-play-services_lib に bin および gen フォルダーを作成します

5) Ant デバッグがエラーを返した理由を見つけるために、何年にもわたって多くのソリューションを検索した後、最終的には断片化して、カタログ bin と gen を myProject/google-play-services_lib/ から myProject/bin と myProject/gen にコピーするだけです

6)次に、#android.library.reference.1=google-play-services_lib の上の 3. のポイントで以前に追加した行を削除し、ファイル 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エミュレーターのprojectApplicationでGoogleマップを見ました:)

もちろん、API_KEY のような他のものや、プロジェクトをコンパイルする前に行った Google マップのチュートリアルからの追加と権限。プロンプトなしで地図を見るには。「Instal Goodle Play Services」は、Google サービスがインストール済みのエミュレーターを使用します。AVD Manager リストの Google API (Google Inc.) を使用しました。これがお役に立てば幸いです。

于 2014-09-27T10:19:10.783 に答える
0

google-play-services_libプロジェクトへのファイル パスには[A-Z,a-z]ÄÖÜ. D:\google-play-services_lib\新しくインポートするよりも移動しましたが、動作します!

私の英語でごめんなさい;-)

于 2013-05-05T20:14:43.843 に答える