2013-01-09 36 views
6

मैं अपने एंड्रॉइड पर Google मानचित्र एपीआई लोड करना चाहता हूं। मैं जो कुछ भी खोजता हूं उसे कोशिश करता हूं लेकिन यह अभी भी दुर्घटनाग्रस्त है। यह मेरा MainActivity.javaGoogle मानचित्र एंड्रॉइड एपीआई वी 2 क्रैश

package com.example.androidmapsv2; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Show the Up button in the action bar. 
     getActionBar().setDisplayHomeAsUpEnabled(true); 
     GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

     GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 

    } 

} 

है यह मेरा लेआउट है activity_main.xml

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

यह मेरा प्रकट

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

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

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

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

    <!-- Require OpenGL ES version 2 --> 
    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <uses-library android:name="com.google.android.maps" /> 

     <activity 
      android:name="com.example.androidmapsv2.MainActivity" 
      android:label="aaa" > 
      <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="AIzaSyDr9xN8L3sF6W2ZRWmTR7q0lhTeOWhXEfQ" /> 
    </application> 

</manifest> 

यह कुंजी मैं मिल गया है है enter image description here

यह libs inclu है डेड (अद्यतन में हल) enter image description here

और मैं एक असली Android डिवाइस नहीं है, इसलिए मैं इस tutorial

यह logcat

01-09 18:05:19.184: E/Trace(1366): error opening trace file: No such file or directory (2) 
01-09 18:05:19.354: W/dalvikvm(1366): Unable to resolve superclass of Lcom/example/androidmapsv2/MainActivity; (5) 
01-09 18:05:19.354: W/dalvikvm(1366): Link of class 'Lcom/example/androidmapsv2/MainActivity;' failed 
01-09 18:05:19.365: D/AndroidRuntime(1366): Shutting down VM 
01-09 18:05:19.365: W/dalvikvm(1366): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
01-09 18:05:19.384: E/AndroidRuntime(1366): FATAL EXCEPTION: main 
01-09 18:05:19.384: E/AndroidRuntime(1366): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.androidmapsv2/com.example.androidmapsv2.MainActivity}: java.lang.ClassNotFoundException: com.example.androidmapsv2.MainActivity 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.os.Looper.loop(Looper.java:137) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at dalvik.system.NativeStart.main(Native Method) 
01-09 18:05:19.384: E/AndroidRuntime(1366): Caused by: java.lang.ClassNotFoundException: com.example.androidmapsv2.MainActivity 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 
01-09 18:05:19.384: E/AndroidRuntime(1366):  ... 11 more 

UPDATED है में एमुलेटर पर इसे स्थापित

मैंने google-play-services_lib को वर्कस्पेस पर कॉपी करने की कोशिश की है और लाल निशान गायब हो गया है 10 लेकिन यह एक और त्रुटि आती है। इसमें google-play-services_lib.jar (lib फ़ोल्डर का नाम + .jar) गुम है। इसे कैसे ठीक करें enter image description here जब मैं google-play-services_lib.jar पर क्लिक करता हूं, तो हटाएं बटन दिखाई नहीं देता है (चित्र की तरह)। हालांकि मैं सभी एंड्रॉइड निर्भरताओं को हटाने की कोशिश करता हूं और फिर दूसरों को फिर से आयात करता हूं। अब यह काम कर रहा है, लेकिन अभी भी दुर्घटनाग्रस्त है।

मैं परिवर्तन

MainActivity extends Activity 

की कोशिश की है

MainActivity extends FragmentActivity 

और लेआउट

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

यह एक और त्रुटि दिखाई करने के लिए। मेरी मदद करो, अब मैं इस

के लिए समाधान से बाहर हूं, अंततः, मैंने अपनी त्रुटि हल की। यह मेरे ग्रहण के कारण होता है (मुझे लगता है)। जब आप लाइब्रेरी क्लास जोड़ते हैं, तो यह स्वचालित रूप से "google-play-services_lib.jar" दिखाई देता है, आपको कुछ भी करने की ज़रूरत नहीं है। मैं ग्रहण को पुनर्स्थापित और सब कुछ ठीक enter image description here

+0

बस 'google-play-services_lib.jar' पर चुनें, और लाइब्रेरी को हटा दें। –

+0

आपको मेरी सहायता के लिए धन्यवाद, लेकिन मुझे लगता है कि यह libs संलग्नक और ग्रहण के बारे में किसी तरह की त्रुटि है। मैंने ऑनलाइन एक उदाहरण की कोशिश की है और इसमें एक ही त्रुटि है – Fido

+0

@ राहुल पटेल मैं स्टैक ओवरफ्लो में नौसिखिया हूं। उसको कैसे करे? वैसे भी, मैंने अपनी ग्रहण और एसडीके को पुनर्स्थापित करके अपनी समस्या हल कर ली है। आयात libs में समस्या है google-play-services_lib.jar – Fido

उत्तर

2

मुझे एपीआई वी 2 के साथ मानचित्र के लिए पहली बार कोडिंग करते समय भी इस तरह की समस्या का सामना करना पड़ता है।

बस Activity

आप अपने कार्यक्षेत्र में परियोजना (goolge_play_services) की प्रतिलिपि और फिर अपनी परियोजना के लिए देते करने के लिए है के बजाय FragmentActivity साथ फैली उपयोग करके देखें। उपरोक्त छवि में यह क्रॉस लाल दिखाता है, इसलिए इसे चुनें और हटाएं और फिर एक बार फिर परियोजना के साथ लाइब्रेरी संलग्न करें।

+1

मैं गतिविधि से फ्रैगमेंट एक्टिविटी में बदल गया लेकिन यह अभी भी दुर्घटनाग्रस्त है और एक और त्रुटि दिखाई देता है – Fido

+0

कृपया अपने एसडीके प्रबंधक में 'google play सेवाएं' इंस्टॉल करें। अगर दिखाई नहीं दे रहा है तो अपने एडीटी प्लगइन्स अपडेट करें। –

0

काम आप अपने कार्यक्षेत्र में परियोजना (goolge_play_services) की प्रतिलिपि और फिर अपनी परियोजना के लिए देते किया है।

आप जो कर रहे हैं वह प्रोजेक्ट आयात कर रहा है और प्रोजेक्ट को वर्कस्पेस में कॉपी करने की जांच नहीं कर रहा है जिसके कारण यह आपको अतिरिक्त पुस्तकालयों में गलत चिह्न दिखा रहा है।

तो google_play_services प्रोजेक्ट को आयात करते समय प्रोजेक्ट को वर्कस्पेस में कॉपी करें और फिर इसे अपने प्रोजेक्ट से संलग्न करें।

+0

tks, मैंने इसे अपने कार्यक्षेत्र में आयात किया और यह एक और त्रुटि दिखाई देता है। मैंने पहली पोस्ट में त्रुटि अपडेट की है, मैं इसे – Fido

+0

कैसे ठीक कर सकता हूं कृपया जांचें कि आपने अपनी प्रोजेक्ट में संगतता जार फ़ाइल जोड़ दी है और अपनी गतिविधि को फ्रैगमेंट एक्टिविटी – TNR

+0

के साथ बढ़ाया है, लेकिन मैंने एक और त्रुटि दिखाई है, मैंने इसे पहले अपडेट किया है पद। क्या आप मेरी मदद कर सकते हैं – Fido

0

जैसा कि मैं देख सकता हूं कि आप एपीआई स्तर 8 और AFAIK का उपयोग कर रहे हैं "Fragments" 11 से समर्थित हैं।

तो यहां आपको टुकड़ों की संगत लाइब्रेरी का उपयोग करने की आवश्यकता है।

और यह भी सुनिश्चित करें कि आपने अपने कार्यक्षेत्र में Google- play-service की लाइब्रेरी भी आयात की है और इसे आपके एप्लिकेशन में जोड़ा है।

1

यह API संस्करण

मत भूलना FragmentActivity के साथ अपने गतिविधि विस्तार करने के लिए 11

  • महत्वपूर्ण नीचे है SupportMapFragment अगर उपयोग करने के लिए आवश्यक है

0

आपको अपने एप्लिकेशन की AndroidManifest.xml फ़ाइल को संपादित करने की आवश्यकता है, और तत्व के भीतर निम्न घोषणा जोड़ें। यह Google Play सेवाओं के संस्करण को एम्बेड करता है जिसे ऐप के साथ संकलित किया गया था।

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