2013-01-02 13 views
5

एक खंड का उपयोग करके Google मानचित्र प्रदर्शित करने का प्रयास कर रहा है। ट्यूटोरियल के रूप में निम्नलिखित page का उपयोग किया गया।त्रुटि

मुझे अपवाद मिल रहा है "वर्ग खंड को घुमाने में त्रुटि"।

1) आयातित जार गूगल प्ले-services.jar

2) डाउनलोड किया है और गूगल खेलने कॉन्फ़िगर सेवाओं एसडीके।

3) नवीनतम वी 2 एपीआई कुंजी मिला।

4) मैनिफेस्ट में com.google.android.providers.gsf.permission.READ_GSERVICES अनुमति जोड़ा गया।

5) mindsdk = 8 और लक्ष्य = 16.

का उपयोग कर एक संदर्भ के लिए, Androidmanifest.xml:

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

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

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

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

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


</application> 

MainActivity.java

package com.example.com.mapsdemo; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.Toast; 

import com.google.android.gms.common.GooglePlayServicesUtil; 


//API : AIzaSyDXPsxWF634gd907NzZKkRkNS0oH9IPWgk 

public class MainActivity extends Activity { 

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


    try { 
    setContentView(R.layout.activity_main); 
    } catch (Exception e) { 

    Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); 
    } 



} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

} 

activity_main.xml

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

Logcat:

01-02 18:31:21.477: I/jdwp(11473): Ignoring second debugger -- accepting and dropping 
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so 
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so 
01-02 18:31:24.509: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so 
01-02 18:31:24.602: D/OpenGLRenderer(11871): Enabling debug mode 0 
+0

कृपया स्टैक ट्रेस पोस्ट करें। – CommonsWare

+0

मैं एक नौसिखिया हूँ। कृपया मुझे बताएं कि क्या मैंने कोई गलती की है – 10101010

+0

यह आपके प्रश्न के प्रासंगिकता का जावा स्टैक ट्रेस नहीं है। डीबगर के बाहर ऐप चलाएं, क्रैश होने की अनुमति दें, और स्टैक ट्रेस के लिए लॉगकैट देखें। – CommonsWare

उत्तर

4

Error inflating class fragment आमतौर पर आता है जब आप देशी एपीआई स्तर टुकड़े की 11 संस्करण का उपयोग करने की कोशिश कर रहे हैं - जो अपने स्रोत कोड कर रही है - लेकिन एक पर इसे चलाने के लिए कोशिश कर रहे हैं एंड्रॉइड का पुराना संस्करण। आदेश एपीआई स्तर 10 और पर <fragment> उपयोग करने के लिए नीचे, आप टुकड़े की Android समर्थन पैकेज के backport उपयोग करने के लिए:

  • FragmentActivity बजाय Activity
  • से विरासत अपनी परियोजना के लिए Android समर्थन पैकेज जोड़ने का उपयोग किसी और SupportMapFragment बजाय MapFragment
  • परिवर्तन कुछ भी है कि अब इस backport पर आधारित अलग

या, आप अपने android:minSdkVersion को 11 या उच्चतम पर सेट कर सकते हैं, और केवल अपने नए कोड पर ही अपना वर्तमान कोड चला सकते हैं।

आप the documentation में एंड्रॉइड समर्थन पैकेज के बारे में अधिक पढ़ सकते हैं।

+1

दूसरे फिक्स के लिए मैं जेली बीन्स के साथ नेक्सस का उपयोग करता हूं, लेकिन काम नहीं करता। और पहले, चार बिंदुओं में परिवर्तन करने के बाद भी यह एक ही अपवाद फेंकता है। – 10101010

+0

गतिविधि के बजाए फ्रैगमेंट सक्रियता से प्राप्त होता है –

1

मुझे एक ही त्रुटि मिल रही थी। जांचें कि आप इसे वास्तविक डिवाइस पर चलाते हैं। और Google play Services लाइब्रेरी को निम्न तरीके से एटच करें। project_properties-> android-> लाइब्रेरी और फिर Google Play वहाँ lib जोड़ने ..

फिर libs फ़ोल्डर की प्रतिलिपि एंड्रॉयड समर्थन v4.jar और google_play_services.jar और फिर सही प्रत्येक फ़ाइल के लिए क्लिक करें और पथ के लिए निर्माण का विकल्प चुना है ..

यह भी जांचें कि आपकी एपीआई कुंजी com.example.com.mapsdemo पैकेज के लिए है .. प्रत्येक पैकेज के लिए नई एपीआई कुंजी उत्पन्न की जानी है ..

और अपनी XML फ़ाइल में MapFragment पर इसके बजाय SupportMapFragment का उपयोग करें।

इससे मेरी समस्या हल हो गई।

आशा है कि यह आपकी समस्या का समाधान करे।

0

इस समस्या के बारे में बहुत सारे प्रश्न, और दो दिन बाद, मेरा समाधान सरल है: आपको प्रोजेक्ट बिल्ड लक्ष्य Google API का उपयोग करके अपनी परियोजना को संकलित करना होगा। मुझे इसके बारे में इतना बेवकूफ लगता है।