Android.gms.maps.MapFragment başlatılamıyor


82

Google Maps android v2 ile çok basit bir aktivite ile bir demo yapmaya çalışıyorum, sadece google sayfasındaki kodu kopyalayın: https://developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application

aktivite için:

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);
    }
}

düzen için:

<?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"/>

Sayfaya göre bir api anahtarı başvurusunda bulundum ve androidmanifest.xml dosyamı şu şekilde değiştirdim:

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

Ayrıca uygulamama, tutulmada google-play-services_lib'e başvuruyorum.

ancak her zaman, logcat'teki hata raporu şöyle:

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

Bunun sebebini bilmiyorum.

Google-play-services.jar dosyasını projeme eklersem, başka bir hata bildirecek:

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)

Bu konuda bana kimse yardımcı olabilir mi?


2
MapView ile aynı hatayı alıyorum. Kitaplığı ekledim ve her şeyi bu sayfada açıklandığı gibi yaptım developer.google.com/maps/documentation/android/start ama bunların hepsi benim için işe yaramazdı.
jumper0k

1
Aynı hata ... herhangi bir çözüm ...
Nilkash

1
Aynı hatayı yaşıyorum ve henüz iyi bir çözüm bulamadım :(
Ricardo Otero

Tahminimce çözülmemiş bu adımları görmek için techhomeblog.wordpress.com/2013/02/23/…
Tofeeq Ahmad

Eclipse'de projenize sağ tıklamayı deneyin, Android Araçları> Destek Kitaplığı Ekle'yi seçin. Benim durumumda ActionBarSherlock'tan alınmış eski bir versiyondu.
IgorGanapolsky

Yanıtlar:


86

IntelliJ IDEA'da (IntelliJ 12 için güncellendi):

  1. ~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/src/dummy.javaİçeren bir dosya oluşturun class dummy {}.
  2. Dosya-> Modülü İçe Aktar-> ~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib
  3. Mevcut Kaynaklardan Modül Oluşturun
  4. Sonraki-> Sonraki-> Sonraki-> Sonraki-> Bitir
  5. Dosya-> Proje Yapısı-> Modüller-> Uygulamanız
  6. +-> Modül Bağımlılığı-> Google-play-services_lib ( + Düğme, iletişim kutusunun sağ üst köşesindedir.)
  7. +-> Kavanozlar veya dizinler->~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
  8. Taşımak için up/ downoklarını kullanın<Module source>Listenin en altına için .

Silebilirsin dummy.java .

Düzenleme: Bunu bir süre kullandıktan sonra küçük bir kusur / hata olduğunu buldum. IDEA, orada bir .imlproje google-play-services_libolduğunu hiç söylememiş olmanıza rağmen bazen dizinde bir proje dosyasını açamamaktan şikayet eder . Böyle bir durumda, projenin yeniden oluşturulması sorunu, en azından geri gelene kadar çözer.


3
merhaba, File > Import Moduleseçeneği benim içinde bulamıyorum Eclipse IDE. Lütfen bana yardım et ...
Rahmathullah M

Bu, üstün IDE "IntelliJ IDEA" içindir.
Timmmm

2
Cevabınız için teşekkürler! Ancak projeye modül VE kavanoz bağımlılığı eklemem yeterli oldu ve her şey çalıştı!
lomza

Intellij 12'deki 6. adım için + düğmesi üçüncü bölmenin altında sol altta bulunur.
Nick

3
Google Play Hizmetleri Kitaplığı "bazı IDE'leri" desteklemek için "resmi bir kukla dosya" ile güncellendiğinden artık Dummy dosyasını eklemenize gerek yok (yani IntelliJ ve Android Studio için bir düzeltme yaptılar).
Guardius

33

Güncelleme

Daha iyi anlamak için lütfen Commonsware MapV2 kod parçacıklarını takip edin.

(Omnibus sürümünde mevcuttur)

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

Aşağıdaki snippet benim tarafımda iyi çalışıyor SupportMapFragment. Kullanmayı seçiyorum .

Projenize eklemeyi unutmayın 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();
    }
}

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

İşte sonuç

görüntü açıklamasını buraya girin Umarım bu yardımcı olur.


merhaba, Vipul Shah, teşekkürler. Concole'dan gelen mesajı seviyorum: [2012-12-06 10:20:26 - google-play-services_lib] google-play-services_lib.apk bulunamadı! Bu apk eksikliğinin hatama yol açıp açmadığını bilmiyorum. Google-play-services.jar'a nasıl başvuracağımı söyleyebilir misin? sadece aşağıdaki bağlantı gibi ekleyin: developer.android.com/intl/zh-CN/tools/projects/… . veya aşağıdaki gibi tutulmaya ekleyin: Özellikler-> java Oluşturma Yolu-> Projeler, google-play-services_lib projesi ekleyin. hangisi senin tarafında? Teşekkürler.
mmm2006

@ mmm2006 Korkarım bu uygulamayı android emülatörde çalıştırıyor olabilirsiniz.Emin değilim ama bu hatayla karşılaşıyor olabilirsiniz çünkü emülatörde oyun mağazası uygulaması yok. Gerçek cihazda deneyin
Vipul

Aslında telefonumda çalıştırıyorum. bir sony telefon.
mmm2006

Merhaba Vipul, MapFragment kullanarak işaretçilerimi haritada nasıl gösterebilirim? Bir enlem ve boylam listem var, bunları haritada göstermek istiyorum, MapView'ı denedim ama benim için işe yaramadı, bu yüzden ItemizedOverlay'i kullanamıyorum, MapFragment çalıştı, bu yüzden MapFragment üzerinde birden çok işaretçi nasıl gösterilir. Mümkünse, çalışma kodu olan bir bağlantı sağlayın.
Shrikant

@VipulShah: rock. Bana bu hatanın neden geldiğini söyleyebilir misin, çünkü bir süre önce işe yaramadan bazı öğretici ---> dj-android.blogspot.in/2013/02/… şimdi aynı kod çalışmıyor.
Dhaval Parmar

23

Düzeninizi şununla değiştirmeyi deneyin:

<?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'in altındaki API için SupportMapFragment'ı kullanmanız gerekir!

Aurel


3
bunun için üzgünüm ama benim yerime de çalışamaz. bu sefer hata raporu: Nedeni: android.app.Fragment $ InstantiationException: Parça başlatılamıyor com.google.android.gms.maps.SupportMapFragment: sınıf adının var olduğundan, herkese açık olduğundan ve genel olan boş bir kurucuya sahip olduğundan emin olun. SupportMapFragment'ı jar içinde bulabilirim, ancak çalışamaz. nedenini bilmiyorum
mmm2006

Hum, öyle bir şey yapmanız gerekiyor gibi görünüyor: 1. Google Play Hizmetleri SDK'sını Android SDK Mananger'a indirin. 2. Proje kitaplığını Eclipse'e içe aktarın. 3. Kitaplığı projenize ekleyin. 4. Projenizde android-support-v4.jar dosyasının bulunduğundan emin olun (ayrıca Android SDK Manager'da mevcuttur). 5. Bir parça oluşturun ve adı ekleyin ('class = "com.google.android.gms.maps.MapFragment" />' için SDK> = 11 ve 'class = "com.google.android.gms.maps.MapFragment SDK <11 için "/> '). 6. Örnek kodu bir cihazda denemeyi unutmayın (uygulamanız için Google Play gerekir!)
Aurel

tamam. google oyun hizmetine başvurmak için bu kılavuzu izlemem gerektiğini fark ettim. developer.android.com/intl/zh-CN/tools/projects/… . ancak google tarafından sağlanan exmaple şimdiye kadar çalışabilir. :(
mmm2006

Parçalar xml dosyasının içine koymak için Framgament'e Eşdeğer Görünüm'ün ne olduğu hakkında bir fikriniz var mı?
Harsha MV

1
@ mmm2006: "FragmentActivity" yi genişletmeniz ve "Activity" yi genişletmeniz gerekir, bu durumda çalışmalıdır ve istisna oluşturmaz ..
Veer

17

Benim için işe yarayan bir çözüm bulmam için birkaç gün süren aynı sorunla karşılaştım:

  1. Projeyi Sil google-play-services_lib(sağ silmek proje üzerinde tıklayın)
  2. MainActivityVarsa , Google haritalar demosunu ( benim durumumda) içeren projeyi silin
  3. Google-play-services_lib (extras \ google \ google_play_services \ libproject \ google-play-services_lib) projesini çalışma alanınıza kopyalayın ve ardından onu Genel proje olarak içe aktarın (Dosya-> içe aktar-> mevcut projeleri çalışma alanına)
  4. Projenize sağ tıklayın (haritayı yüklemek istediğiniz yer) -> Android -> ekle (kitaplığın altında) google-play-services_lib

Bunun gibi bir şey görmelisiniz:

dikkat et

Not: Böyle bir şeye sahip olmamalısınız (proje, çalışma alanınızdan yönlendirilmelidir):

görüntü açıklamasını buraya girin

Sanırım sorun, çekici projelerin aynı kitaplığı referans alması


Google Play hizmetlerini bir Java oluşturma yolu kitaplığı olarak ekliyordum, ancak Android / Kitaplık altına eklenmesi gerekiyordu
marimaf

10

bunu dene

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

Google hizmetlerinin projesini ekledim ve proje mülküme bir referans ekledim-> Android


2
Bu benim için kritik bir çözümdü, yukarıdaki diğer cevapların hiçbiri yardımcı olmadı. Buradaki fark aslında oldukça ince - bunu "Java Build Path" aracılığıyla bağımlı bir proje olarak ekliyordum, aslında bunu "Android" menüsünden yapmalıydım. Bu bilgiyi diğer yanıtlarımdan birine ekledim: stackoverflow.com/questions/13733911/…
Dan J

8
  1. Şimdiye kadar, demo bu bağlantıyı takip ederek çalışabilir :
  2. Örneğin demo da işe yarayabilir:

Projenizdeki libs dizinine iki jar ekleyin. Aşağıdaki bilgileri izleyin. Özellikle şunları yapmanız gerektiğini düşünüyorum:

  • "Google-play-services_lib" projesi için gerçek kaynağı içe aktarın ve bunu bir Android kitaplığı olarak bağlayın.
    • Bunu Proje -> Özellikler -> Android -> Kitaplık, Ekle -> google-play-services_lib yoluyla yapın (projenize sağ tıklayıp Özellikler'i seçip Android'i seçebilirsiniz).
    • Benim için çalışmayan, projeniz için "Java Build Path" yoluyla bağımlı bir Proje olarak eklemeyin.
  • Google-play-services.jar ve android-support-v4.jar dosyasını örnek projedeki bir "libs" klasörüne ekleyin ve "Build Path -> Configure Build Path -> Libraries" bölümüne "External External JARs" olarak ekleyin. .

Örnek kodu kullanmaya çalışırken sizinle aynı hatayı bulduğum için bu ikinci adımın gerekli olduğunu fark ettim. Gerçek projemde com.google.android.gms.R $ styleable içinde NoClassDefFoundError oluşmasını önlemek için ilk adım gerekliydi.

Ayrıca, örnek kod çalışmadan önce Temiz bir derleme yapmam ve uygulamayı cihazdan kaldırmam (daha önceki bir test denemesinden) gerekiyordu.

yardımın için çok teşekkürler.


3

Belki şunu vurgulamalısın:

Not: Google Play hizmetleri Android öykünücüsünde desteklenmez - API'leri kullanarak geliştirmek için Android telefon veya tablet gibi bir geliştirme cihazı sağlamanız gerekir.

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

Uygulamanızı çalıştırabileceğiniz ve hatalarını ayıklayabileceğiniz bir fiziksel geliştirme cihazı sağlamalısınız. Öykünücü kullanmayın. Çalışmayacak.


3
AMAN TANRIM! Bu not neden ana sayfada bu kadar küçük ve her sayfada kırmızı değil? Bunu çalıştırmak için neredeyse bütün gün becerdim !!!!
shmoula

Play Hizmetleri artık Android v4.2.2 veya sonraki sürümleri çalıştıran emülatörlerde mevcuttur.
Brian White

2

Sizin MainActivity(veya v2 haritasını koymak istediğiniz her aktivitede) genişletmelisiniz FragmentActivityveya Activitykullanmak istediğinizi SupportMapFragmentveya sadece MapFragment. MapFragmentSınıfı yalnızca API 12 ve üzerini hedefliyorsanız kullanın . Aksi takdirde kullanın SupportMapFragment. Bu ince bir fark ama hata yapıyor.


2

Google haritası artık Fragments'ın altında olduğundan, aktivitenizi FragmetActivity'den genişletin ve " supporrtMapFragment " kullanıyorsanız , Fragment'i yalnızca destek paketinden içe aktardığınızdan emin olun .


Google SupportMapFragment,. Onsuz çalışmıyor ...
Muzikant

1

Intellij Idea projemde projeye hem: google-play-services_lib hem de google-play-services.jar eklemem gerekiyordu. Ve google-play-services_lib projesinde google-play-services.jar dosyasını da ekleyin. Bundan sonra, burada açıklanan her şeyi yaptıysanız , doğru, başvurunuz çalışıyor olmalı.


Dizin için hangi kategoriyi kullanıyorsunuz (sınıflar, jar dizini, kaynaklar, vb.)?
Timmmm

1
Intellij Idea'da google-play-services_lib'i bir modül gibi ekliyorum. Dahası, Intellij Idea bunu bir modül olarak tanımıyor çünkü src klasörü boş. Src klasörüne herhangi bir kod ile java dosyası eklemelisiniz, daha sonra mevcut kaynaklardan modül oluşturup proje yapısında projeye eklemelisiniz. Ardından java dosyasını temizleyin.
jumper0k

1

Önceki API'de farklı olduğu için biraz zordu ama bir çözüm buldum. Google burada ne yapılacağını söylüyor ; sorusuna göre com.google.android.gmssınıflara ihtiyacımız var, bu yüzden google play servicessadece bu link gibi projemize eklememiz gereken bir kütüphane olan 'i kurmamız gerekiyor . google-play-services_libSdk klasöründeki değil, proje kitaplığının kopyasını içe aktarmak çok önemlidir . Bu tamamlandığında, Google'ın öğreticisi mükemmel bir şekilde gider.


Ayrıca hangi api'yi kullandığınız da önemlidir, api 10 veya daha azının destek kitaplığına ihtiyacı var developer.android.com/tools/extras/support-library.html tam olarak hanginiz hata?
joseph.dev89

1

Daha önce bahsedilen pek çok şeyin dışında, benim için .jar'ı Sipariş ve İhracatta da işaretlemek önemliydi. Anladığım kadarıyla genellikle bahsedilmez ve benim için çok önemliydi.

Kitaplığı Sırala ve Dışa Aktar'da işaretleyin



1

Bu bağımlılığı build.gradle'a ekleyin

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

Şimdi bu çalışıyor

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

Drive ile ilgili içe aktarımlarla ilgilenmek için Google Drive SDK,. Birkaç tane büyük olanı vardır, bu nedenle bunları uygulamanıza uyacak şekilde ayrı ayrı eklemek isteyebilirsiniz.

Eğer bu çözülmezse com.google.android.gms.* imports,the 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.

DÜZENLE:

Bu durumda, aşağıdaki kavanozlara ihtiyaç vardı:

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'i gerçekten oluşturmayı unutmayın !! Bu yüzden "google-play .... apk bulunamadı" ifadesini gösteriyor. Benim için Eclipse'de başka hiçbir hacklemeye gerek yoktu, ancak projeye Java derleme yolundan veya Proje referanslarından veya başka herhangi bir yerden değil, Android alt menüsünden referans vermek. Elle yerleştirilmiş kavanozlar yok, aslında benim için hiçbir şeye gerek yoktu.


0

Eclipse'de, google play hizmetleri için ayrı bir proje oluşturmak ve onu basitçe jar eklemek yerine Android projenizden bir kitaplık olarak referans almak gerekir. Bilgisayarımda Google Play hizmetleri Eclipse projesini doğrudan D: \ adt-bundle-windows-x86-20130219 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib'den içe aktardım ve Lib projesine ayarladım, böylece ben Android projemden buna referans verebilir.


0

Aynı eğitimde belirtildiği gibi

Aşağıdaki kodun yalnızca ayarlarınızı Android API 12 veya sonrasını hedefleyen bir uygulamada test etmek için yararlı olduğunu lütfen unutmayın.

Min SDK sürümünüzü 12 olarak değiştirin ve çalışacaktır

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

Haven, API'nin eski sürümleri için Aurel'in çözümünü henüz denedi.


0

(Bir saatten fazla saçımı çekerek geçirdikten sonra), MapFragment kullanıyorsanız, FragmentActivity'yi kullanamayacağınızı (SupportMapFragment bu ortamda iyi çalışacaktır) bahsetmeye değer olduğunu düşünüyorum. Ben de bundan vazgeçmeye hazırdım.



0

Bu bazılarına yardımcı olabilir. İki projem vardı, biri Google'dan demo kopyasıydı ve iyi çalıştı. Bir tane daha var olan bir projeye kopyaladım ve onu hiç çalıştıramadım. Ve ikinci başarısız olanda yukarıda açıklanan hata mesajını alıyordum.

Sorunum, yeniden oluşturmama, birden çok kez içe aktarmama vb. Rağmen, etkin olmayan bir kitaplıktan kaynaklanıyordu. Projeye sağ tıklayın -> Özellikler -> Java Oluşturma Yolu -> Sipariş ve Dışa Aktar sekmesi. Başarısız olan projede "Android Özel Kitaplıkları" sekmesinin işareti kaldırıldı.

Etkinleştirdikten sonra proje iyi çalıştı.


0

Yukarıdaki herkesin söylediği her şeye super.onCreate(savedInstanceState);sahiptim ve oncreate yönteminin ilk talimatını çağırarak hatayı çözdüm; yöntemde son satır olmadan önce. : | bütün gün boşa gitti.


0

Bu sorunla karşılaştım, Google Play hizmetlerini güncelledim ve bağımlılık olarak google-play-service-lib projesini eklediğinizden emin oldum, şu anda herhangi bir kod değişikliği olmadan çalışıyor ancak hala "Google Play hizmetleri kaynakları bulunamadı . Kaynakların dahil edildiğinden emin olmak için proje yapılandırmanızı kontrol edin. " ancak bu yalnızca setMyLocationEnabled (true) olduğunda olur, kimse nedenini biliyor?


0

Doğru çözümü bulamadım ama bunları yaptıktan sonra çözüyorum: -
google-play-services_lib'i içe aktarırken 'Projeleri çalışma alanına kopyala' seçeneğini işaretleyin
- minSdkVersion değerini 13'ün altına ayarlamayın
- Temayla ilgili bir hata alırsanız deneyin Düzen temanızı herhangi bir sistem temasıyla değiştirmek
- Projenizi sıfırdan yeniden oluşturun veya bir yerden alırsanız her şeyi geri alın


0

Aynı sorunu yaşadım ve SDK'dan sadece Yüklü Play Hizmetleri ve tüm sorunlar uçup gidiyor.


0

Aktivitede yazdım
import com.google.android.gms.maps.SupportMapFragment;

ve Eclipse bana kırmızı simgeyi verdi> tıklayın> projec kurulumunu düzelt ..> arşiv ekle google-play-services.jar

Ve nihayet işe yaradı !!



0

Windows 7 64 bit makinede x86 için Android SDK kullanırken bu sorunla karşılaştım. Android SDK 64 bit sürümünü indirdim, Eclipse'in onu Pencere> Tercihler> Android> SDK konumunda görmesini sağladım ve sorun durdu.


0

Lütfen dikkatlice okuyunuz

Her şey google koduyla aynı şekilde çalışıyorsa, lütfen benim durumumda manifest dosyasını kontrol edin, coğrafi anahtar ve harita anahtarı ekledim, bu yüzden istisna oluşuyor,

Not - manifest dosyasına iki anahtar eklemeyin harita anahtarını kaldırın

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

bu kodu ekleyin.

 <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"/>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.