0

我試圖在Google Maps API v2中使用SupportMapFragment類。 但我一直在遇到這個錯誤。 我已經導入了google-play-services_lib項目,並將其添加到我的Java 構建路徑中。谷歌地圖的錯誤Android API V2和Android 2.3.5

03-29 23:58:09.893: E/AndroidRuntime(26163): FATAL EXCEPTION: main 
    03-29 23:58:09.893: E/AndroidRuntime(26163): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yo/com.example.yo.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class fragment 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1830) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread.access$1500(ActivityThread.java:132) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.os.Handler.dispatchMessage(Handler.java:99) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.os.Looper.loop(Looper.java:150) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread.main(ActivityThread.java:4277) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at java.lang.reflect.Method.invokeNative(Native Method) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at java.lang.reflect.Method.invoke(Method.java:507) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at dalvik.system.NativeStart.main(Native Method) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.Activity.setContentView(Activity.java:1712) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.example.yo.MainActivity.onCreate(MainActivity.java:11) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): ... 11 more 
    03-29 23:58:09.893: E/AndroidRuntime(26163): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f060000 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.content.res.Resources.getValue(Resources.java:901) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.content.res.Resources.openRawResource(Resources.java:826) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.content.res.Resources.openRawResource(Resources.java:808) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.af.w.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.z.ab.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.z.ag.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.z.ag.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.z.bw.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at maps.z.r.onCreateView(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.maps.internal.IMapFragmentDelegate$Stub.onTransact(IMapFragmentDelegate.java:107) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.os.Binder.transact(Binder.java:279) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.maps.SupportMapFragment$a.onCreateView(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.internal.e$4.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.internal.e.a(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.internal.e.onCreateView(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:884) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1168) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:280) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
    03-29 23:58:09.893: E/AndroidRuntime(26163): ... 20 more 
    03-29 23:58:09.933: D/dalvikvm(26163): GC_CONCURRENT freed 367K, 45% free 3282K/5959K, external 0K/0K, paused 6ms+5ms 
    03-29 23:58:11.764: I/Process(26163): Sending signal. PID: 26163 SIG: 9 

這裏是我的清單:

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

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

     <uses-permission 
      android:name="com.example.yo.permission.MAPS_RECEIVE"/> 
     <uses-permission 
      android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
     <uses-permission 
      android:name="android.permission.INTERNET"/> 
     <uses-permission 
      android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
     <uses-feature 
      android:glEsVersion="0x00020000" 
      android:required="true"/> 

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

     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.example.yo.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> 
      <uses-library android:name="com.google.android.maps" /> 
      <meta-data 
       android:name="com.google.android.maps.v2.API_KEY" 
       android:value="the key"/> 
     </application> 
    </manifest> 

我的MainActivity:

package com.example.yo; 

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

    public class MainActivity extends FragmentActivity { 

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

和XML:

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

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:text="@string/hello_world" /> 
     <fragment 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      class="com.google.android.gms.maps.SupportMapFragment"/> 

    </RelativeLayout> 

缺少什麼我在這裏?

+1

「我已導入谷歌播放-services_lib項目,並將其添加到我的Java構建路徑」 - 如果您手動混淆了構建路徑,那麼您沒有將google-play-services_lib項目正確添加到主機項目中。 – CommonsWare

+0

@CommonsWare:我做了以下項目:項目>屬性>安卓>添加>谷歌播放服務_lib 因爲它沒有解決問題,我也將項目添加到Java構建路徑 – czardoz

回答

1

從manifast文件中刪除這行代碼:它不需要谷歌地圖API V2

<uses-library android:name="com.google.android.maps" /> 

而且它不涉及到當前的問題,但你需要添加以下權限,以及:

<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-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

,你需要添加谷歌圖書館在其他的方式,在博客上閱讀更多關於它我寫道:

Google Map API V2

+0

我添加了這些權限,我'm正在閱讀您的文章,感謝:-) – czardoz

+0

好了,修復權限,並通過右鍵單擊> Android工具>添加支持庫來添加支持庫。沒有運氣,但現在我看到 03-30 00:30:31.192:E/dalvikvm(26660):找不到類「maps.i.k」,從方法maps.z.ag.a引用 在出現大錯誤 – czardoz

+0

之前以及在應用程序中看到什麼?這個錯誤通常與API關鍵問題有關。請嘗試生成新密鑰並通過API控制檯進行註冊。 –