android.gms.maps.MapFragmentをインスタンス化できません


82

私は非常に簡単なアクティビティでグーグルマップアンドロイドv2でデモをしようとしています、グーグルページからコードをコピーするだけです:https//developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application

活動のために:

package com.example.mapdemo;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

レイアウト用:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.MapFragment"/>

ページに従ってAPIキーを申請し、次のようにandroidmanifest.xmlファイルを変更しました。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wenhai.driverschool"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

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

    <!-- add for map2 -->
    <permission
        android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!-- External storage for caching. -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Maps API needs OpenGL ES 2.0. -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyDVAF4WaVSVRDKJx87It8OSFP5txQcPabc" />

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

また、Eclipseでアプリをgoogle-play-services_libに参照しています。

しかし、毎回、次のようなlogcatのエラーレポート:

2-05 16:22:53.609: E/AndroidRuntime(21623): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wenhai.driverschool/com.wenhai.driverschool.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.os.Looper.loop(Looper.java:137)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at dalvik.system.NativeStart.main(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 11 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:581)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:549)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.onCreateView(Activity.java:4235)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 20 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:571)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 23 more

その理由はわかりません。

google-play-services.jarをプロジェクトに追加すると、別のエラーが報告されます。

12-05 16:34:23.269: E/AndroidRuntime(22638): FATAL EXCEPTION: main
12-05 16:34:23.269: E/AndroidRuntime(22638): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.onCreateView(Activity.java:4242)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.os.Looper.loop(Looper.java:137)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at dalvik.system.NativeStart.main(Native Method)

誰でもこれについて私を助けることができますか?


2
MapViewでも同じエラーが発生します。ライブラリを追加し、このページdevelopers.google.com/maps/documentation/android/startで説明されているようにすべてを実行しましたが、これはすべて私には役に立ちませんでした。
jumper0k

1
同じエラー..任意のソリューション...
nilkash

1
私は同じエラーを抱えていて、まだ良い解決策を見つけることができませんでした:(
Ricardo Otero


Eclipseでプロジェクトを右クリックし、[Androidツール]> [サポートライブラリの追加]を選択してみてください。私の場合、それはActionBarSherlockから取得した古いバージョンでした。
IgorGanapolsky 2013

回答:


86

IntelliJ IDEA(IntelliJ 12用に更新)の場合:

  1. ~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/src/dummy.javaを含むファイルを作成しますclass dummy {}
  2. ファイル->モジュールのインポート-> ~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib
  3. 既存のソースからモジュールを作成する
  4. 次へ->次へ->次へ->次へ->終了
  5. ファイル->プロジェクト構造->モジュール-> YourApp
  6. +->モジュールの依存関係-> Google-play-services_lib(+ボタンはダイアログの右上隅にあります。)
  7. +->瓶またはディレクトリ->~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
  8. up/down矢印を使用して<Module source>、リストの一番下に移動します。

dummy.java必要に応じて削除できます。

編集:これをしばらく使用した後、小さな欠陥/バグがあることがわかりました。IDEAは.imlgoogle-play-services_libディレクトリにプロジェクトがあると言ったことがないにもかかわらず、ディレクトリ内のプロジェクトファイルを開くことができないと不平を言うことがあります。その場合、プロジェクトを再構築すると、少なくとも問題が再発するまで問題は解決します。


私のために働きます。ありがとう!
kingtim 2013

3
こんにちは、私はFile > Import Module私のでオプションを見つけることができませんEclipse IDE。助けてください
...– Rahmathullah M 2013

優れたIDE「IntelliJIDEA」用です。
Timmmm 2013年

2
ご回答有難うございます!しかし、プロジェクトにモジュールとjarの依存関係を追加するだけで十分であり、すべてが機能しました。
lomza 2013年

3
Google Play開発者サービスライブラリが「一部のIDE」をサポートするように「公式ダミーファイル」で更新されたため、ダミーファイルを追加する必要がなくなりました(つまり、IntelliJとAndroid Studioが修正されました)。
ガーディウス2013年

33

更新

Commonsware MapV2コードスニペットに従って、理解を深めてください。

(オムニバス版にあります)

https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2

次のスニペットは私の最後では正常に機能していますSupportMapFragment。私はを使用することを選択します。

プロジェクトに追加すること忘れないでgoogle-play-services.jar ください。

MainActivity.java

package com.example.newmapview;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SupportMapFragment fragment = new SupportMapFragment();
        getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, fragment).commit();
    }
}

マニフェスト.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.newmapview"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.example.newmapview.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.newmapview.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.newmapview.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="XXXXX" />
    </application>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

</manifest>

これが結果です

ここに画像の説明を入力してください これがお役に立てば幸いです。


こんにちは、Vipul Shah、ありがとう。concoleからのメッセージが好きです:[2012-12-06 10:20:26 --google-play-services_lib] google-play-services_lib.apkが見つかりませんでした!このapkの欠落が私のエラーにつながるかどうかはわかりません。google-play-services.jarの参照方法を教えてください。以下のリンクのように追加するだけです:developer.android.com/intl/zh-CN/tools/projects/…。または、以下のようにEclipseに追加します:Propertyes-> java Build Path-> Projects、google-play-services_libプロジェクトを追加します。あなたの側のどちらですか?ありがとう。
mmm2006 2012

@ mmm2006 Androidエミュレーターでこのアプリケーションを実行している可能性があります。わかりませんが、エミュレーターにPlayストアアプリがないため、このエラーが発生する可能性があります。実際のデバイスで試してください。
Vipul 2012

実際、私は自分の携帯電話でそれを実行しています。ソニーの電話。
mmm2006 2012

こんにちはVipul、教えていただけますか、MapFragmentを使用してマーカーを地図上に表示するにはどうすればよいですか?緯度と経度のリストがあります。それらを地図に表示したいのですが、MapViewを試しましたが、機能しなかったため、ItemizedOverlayを使用できず、MapFragmentが機能したので、MapFragmentに複数のマーカーを表示する方法を説明します。可能であれば、動作するコードを含むリンクを提供してください。
シュリカント2012

@VipulShah:あなたは、このエラーが来て、なぜそれが動作するいくつかの時間前に私はいくつかのtutotialを開発しているので、あなたが> ---教えてrock.canあるdj-android.blogspot.in/2013/02/...今、同じコードが動作していません。
Dhaval Parmar 2013

23

レイアウトを次のように置き換えてみてください:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
       android:name="com.google.android.gms.maps.SupportMapFragment"
       android:layout_width="wrap_content"
       android:layout_height="match_parent" />

11歳未満のAPIにはSupportMapFragmentを使用する必要があります。

アウレル


3
申し訳ありませんが、私の代わりにはうまくいきません。今回のエラーレポート:原因:android.app.Fragment $ InstantiationException:フラグメントをインスタンス化できませんcom.google.android.gms.maps.SupportMapFragment:クラス名が存在し、パブリックであり、パブリックである空のコンストラクターがあることを確認してください。jarでSupportMapFragmentを見つけることができますが、機能しません。理由はわかりません。
mmm2006 2012

うーん、次のようなことをする必要があるようです。1。Android SDKManangerにGooglePlay開発者サービスSDKをダウンロードします。2.プロジェクトライブラリをEclipseにインポートします。3.ライブラリをプロジェクトに追加します。4.プロジェクトにandroid-support-v4.jarが含まれていることを確認してください(Android SDK Managerでも使用できます)。5.フラグメントを作成し、名前( 'class = "com.google.android.gms.maps.MapFragment" />' for SDK> = 11および 'class = "com.google.android.gms.maps.MapFragment SDKの「/>」<11)。6.デバイスでサンプルコードを試すことを忘れないでください(アプリにはGoogle Playが必要です!)
Aurel 2012

わかりました。グーグルプレイサービスを参照するには、このガイドに従う必要があることがわかりました。 development.android.com/intl/zh-CN/tools/projects/…。しかし、グーグルによって提供された例は、今ではまだ機能することができます。:(
mmm2006 2012

Framgamentに相当するビューをfragmentsxmlファイル内に配置するためのアイデアはありますか?
Harsha MV

1
@ mmm2006:あなたは&ではない「FragmentActivity」を拡張する必要があり、「アクティビティ」、それが動作するはずですし、例外をスローしません...
ヴィール

17

私は同じ問題に直面しましたが、私にとって有効な解決策を見つけるのに2日かかりました:

  1. プロジェクトを削除しますgoogle-play-services_lib(右削除プロジェクトをクリックしてください)
  2. Googleマップのデモ(MainActivity私の場合)を含むプロジェクトがある場合は削除します
  3. プロジェクトgoogle-play-services_lib(extras \ google \ google_play_services \ libproject \ google-play-services_lib)をワークスペースにコピーしてから、一般プロジェクトとしてインポートします([ファイル]-> [インポート]-> [既存のプロジェクトをワークスペースに])。
  4. プロジェクト(マップをロードするプロジェクト)を右クリックします-> Android->追加(ライブラリの下)google-play-services_lib

あなたはこのようなものを見るはずです:

に注意してください

注:このようなものは使用しないでください(プロジェクトはワークスペースから参照する必要があります):

ここに画像の説明を入力してください

問題は、2つのプロジェクトが同じライブラリを参照していることだと思います


google playサービスをJava
ビルドパス

10

これを試して

http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

Googleサービスのプロジェクトを追加し、プロジェクトのプロパティ-> Androidに参照を追加しました


2
これは私にとって重要な修正でしたが、上記の他の回答はどれも役に立ちませんでした。ここでの違いは実際にはかなり微妙です。実際には「Android」メニューから追加する必要があったのに、「Javaビルドパス」から依存プロジェクトとして追加していました。私はその情報を他の回答の1つに追加しました:stackoverflow.com/questions/13733911/…–
Dan J

8
  1. 今では、デモはこのリンクをたどっ動作することができます:
  2. たとえば、デモの場合も機能します。

プロジェクトのlibsディレクトリに2つのjarを追加します。以下の情報に従ってください。特に、次のことを行う必要があると思います。

  • 「google-play-services_lib」プロジェクトの実際のソースをインポートし、Androidライブラリとしてリンクします。
    • これを行うには、[プロジェクト]-> [プロパティ]-> [Android]-> [ライブラリ]、[追加]-> [google-play-services_lib](プロジェクトを右クリックして[プロパティ]を選択し、[Android]を選択します)。
    • プロジェクトの「Javaビルドパス」を介して依存プロジェクトとして追加しないでください。これは私には機能しませんでした。
  • google-play-services.jarとandroid-support-v4.jarをサンプルプロジェクトの「libs」フォルダーに追加し、「ビルドパス->ビルドパスの構成->ライブラリ」で「外部外部JAR」として追加します。 。

サンプルコードを使用しようとしたときに、まったく同じエラーが発生したため、この2番目の手順が必要であることがわかりました。最初のステップは、実際のプロジェクトでcom.google.android.gms.R $ styleableのNoClassDefFoundErrorを回避するために必要でした。

また、サンプルコードが機能する前に、クリーンビルドを実行し、デバイスからアプリをアンインストールする必要がありました(以前のテスト試行から)。

どうもありがとうございました。


3

多分あなたはこれを強調する必要があります:

注:Google Play開発者サービスはAndroidエミュレーターではサポートされていません。APIを使用して開発するには、Androidスマートフォンやタブレットなどの開発デバイスを提供する必要があります。

http://developer.android.com/google/play-services/setup.html

アプリを実行およびデバッグできる物理開発デバイスを提供する必要があります。エミュレータは使用しないでください。動作しません。


3
ああ、神様!このメモがメインページで非常に少なく、すべてのページで大きな赤ではないのはなぜですか?私はそれを実行しようとしてほぼ一日中食べました!!!!
shmoula 2013

Play開発者サービスは、Androidv4.2.2以降を実行しているエミュレーターで利用できるようになりました。
ブライアンホワイト

2

あなたのMainActivity(またはv2マップを配置したい各アクティビティで)拡張するFragmentActivityActivity、使用するSupportMapFragmentか、または単にMapFragmentMapFragmentAPI 12以降を対象としている場合にのみ、クラスを使用してください。それ以外の場合は、を使用しますSupportMapFragment。微妙な違いですが、エラーが発生します。


2

現在、Googleマップはフラグメントでラップされているため、アクティビティだけでなくFragmetActivityからアクティビティを拡張し、「supporrtMapFragment」を使用する場合は、サポートパッケージからのみフラグメントをインポートしていることを確認してください。


Googleは、を使用するための基本的な例を実際に修正する必要がありますSupportMapFragment。...それなしでは動作しません
Muzikant

1

Intellij Ideaプロジェクトでは、google-play-services_libとgoogle-play-services.jarの両方をプロジェクトに追加する必要がありました。そして、google-play-services_libプロジェクトにgoogle-play-services.jarも追加します。その後、ここで説明されているすべてのことを実行した場合、アプリケーションは機能しているはずです。


ディレクトリにはどのカテゴリを使用しますか(クラス、jarディレクトリ、ソースなど)?
Timmmm 2012

1
Intellij Ideaでは、モジュールのようにgoogle-play-services_libを追加しています。さらに、srcフォルダーが空であるため、IntellijIdeaはモジュールのように認識しません。任意のコードを含むJavaファイルをsrcフォルダーに追加してから、既存のソースからモジュールを作成し、プロジェクト構造内のプロジェクトに追加する必要があります。次に、Javaファイルをクリアします。
jumper0k 2012

1

以前のAPIとは違うので少し難しかったですが、解決策を見つけました。グーグルはここで何をすべきかを言います; 質問によると、com.google.android.gmsクラスが必要なので、をセットアップする必要がありますgoogle play services。これは、このリンクのようにプロジェクトに追加する必要がある単なるライブラリです。google-play-services_libsdkフォルダーにあるものではなく、プロジェクトライブラリのコピーをインポートすることが非常に重要です。それが完了すると、Googleのチュートリアルは完璧に進みます。


また、使用しているAPIも重要です。API10以下では、サポートライブラリdeveloper.android.com/tools/extras/support-library.htmlが必要です。エラーはどれですか。
joseph.dev89 2012

1

前述の多くのこととは別に、私にとっては、注文とエクスポートでも.jarをマークすることが重要でした。私が知る限り、通常は言及されておらず、私にとってそれは非常に重要でした。

Order andExportでライブラリをマークします


1

この提案に関連する:https//stackoverflow.com/a/20215481/3080835

また、これをApplicationマニフェストの要素に追加する必要がありました。

<meta-data 
           android:name="com.google.android.gms.version" 
           android:value="@integer/google_play_services_version" />

そしてそれは完璧に機能しました。


1

この依存関係をbuild.gradleに追加します

compile 'com.google.android.gms:play-services:6.5.87'

今これは動作します

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

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="388dp"
        android:layout_weight="0.40" />
</LinearLayout>

0

ドライブ関連のインポートを処理するには、からいくつかのjarファイルが必要になりGoogle Drive SDKます。大きなものがいくつかあるので、アプリに合わせて個別に追加することをお勧めします。

それでも解決しない場合はcom.google.android.gms.* importsthe Google Play Services add-on needs to be installed (from Extras -> Google Play Services in the SDK Manager) and google-play-services.jar needs to be added to your build path.

編集:

この場合、次のjarファイルが必要でした。

google-api-services-drive-v2-rev1-1.7.2-beta.jar

google-http-client-1.10.3-beta.jar

google-http-client-android2-1.10.3-beta.jar

google-oauth-client-1.10.1-beta.jar

google-api-client-android2-1.10.3-beta.jar

google-api-client-1.10.3-beta.jar



0

実際にgoogle-play-services_libをビルドすることを忘れないでください!! そのため、「google-play .... apkが見つかりませんでした」と表示されます。私にとって、Eclipseでは、他のハックは必要ありませんでしたが、Javaビルドパスやプロジェクト参照などからではなく、Androidサブメニューからプロジェクトを参照するためでした。手動で配置された瓶はなく、実際には何も必要ありませんでした。


0

Eclipseでは、Google Play開発者サービス用に別のプロジェクトを作成し、それを単にjarを追加するのではなく、Androidプロジェクトからlibとして参照する必要があります。私のコンピューターでは、Google Play開発者サービスのEclipseプロジェクトをD:\ adt-bundle-windows-x86-20130219 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_libから直接インポートし、Libプロジェクトに設定したので私のAndroidプロジェクトからそれを参照することができます。


0

同じチュートリアルに次のように記載されています

以下のコードは、Android API12以降を対象とするアプリケーションで設定をテストする場合にのみ役立つことに注意してください。

最小SDKバージョンを12に変更するだけで、機能します

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

Havenは、古いバージョンのAPIに対してAurelの回避策をまだ試しました。


0

MapFragmentを使用している場合、FragmentActivityを使用できないことを(1時間以上かけて髪を抜いた後)言及する価値があると思います(SupportMapFragmentはこの環境で正常に機能します)。私はちょうどそれをあきらめる準備ができていました。


0

最初のステップ http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject2 番目のステップ http://developer.android.com/google/play-services/setup.html そのページには注:しかし、私たちは注意を払っていませんでした

注:ソースツリーにコピーしたライブラリのコピーを参照する必要があります。AndroidSDKディレクトリからライブラリを参照しないでください。

しかし、私はそれが文書化の良い方法ではないと思います:)


0

これは一部の人にとって役立つかもしれません。私には2つのプロジェクトがありました。1つはGoogleのデモのコピーで、正常に機能しました。もう1つは既存のプロジェクトにコピーしましたが、まったく実行できませんでした。そして、2番目に失敗したものでは、上記のエラーメッセージが表示されていました。

私の問題は、再構築したり、複数回インポートしたりしたにもかかわらず、ライブラリが有効になっていないことが原因でした。プロジェクト->プロパティ-> Javaビルドパス->注文とエクスポートタブを右クリックします。失敗したプロジェクトでは、[Androidプライベートライブラリ]タブがオフになっています。

有効にすると、プロジェクトは正常に機能しました。


0

私は上記のすべての人が言っていることをすべて持っていてsuper.onCreate(savedInstanceState);、oncreateメソッドの最初の命令としてasを呼び出すだけでエラーを解決しました 。メソッドの最後の行になる前。:| 一日を無駄にしました。


0

この問題が発生しました。GooglePlay開発者サービスを更新し、依存関係としてgoogle-play-service-libプロジェクトを追加していることを確認します。コードを変更せずに機能していますが、「GooglePlay開発者サービスのリソースが見つかりませんでした。 。プロジェクトの構成をチェックして、リソースが含まれていることを確認してください。」しかし、これはsetMyLocationEnabled(true)がある場合にのみ発生します、誰かが理由を知っていますか?


0

本当の解決策は得られませんが、次のことを行った後に解決
します: -google-play-services_libをインポートするときに「プロジェクトをワークスペースにコピーする」に
チェックマークを付けます-minSdkVersionを13未満に設定しないでください
-テーマでエラーが発生した場合は、試してくださいレイアウトテーマを任意のシステムテーマに変更する
-プロジェクトを最初から再作成するか、どこかから取得した場合はすべてを元に戻します


0

同じ問題が発生し、SDKからPlay開発者サービスをインストールしただけで、すべての問題が解決しました。


0

アクティビティに書いた
import com.google.android.gms.maps.SupportMapFragment;

そしてEclipseは私に赤いアイコンを与えました>クリック>プロジェクトのセットアップを修正します。>アーカイブを追加しますgoogle-play-services.jar

そしてついにそれはうまくいきました!!



0

Windows 764ビットマシンでAndroidSDK for x86を使用しているときに、この問題に直面しました。Android SDK 64ビットバージョンをダウンロードし、Eclipseに[ウィンドウ]> [設定]> [Android]> [SDKの場所]で表示させたところ、問題は発生しなくなりました。


0

注意深く読んでください

すべてがグーグルコードと同じように動いている場合は、私の場合はマニフェストファイルを確認してください。ジオキーとマップキーを追加したため、例外が発生します。

注-マニフェストファイルに2つのキーを追加しないでくださいマップキーを削除します

meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key"/>

このコードを追加します。

 <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/auto_location"/>

 <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.