2013-01-17 52 views
2

我只是试图在显示器上查看地图,但它不起作用。我得到的RuntimeException:谷歌地图 - runtimeexception - 错误膨胀类片段

01-17 19:16:47.066: E/AndroidRuntime(6605): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 

的Java:

import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import android.os.Bundle; 
import android.app.Activity; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.Fragment; 




public class MainActivity extends FragmentActivity { 
getSupportFragmentManager().findFragmentById(R.id.map)) 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


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

    setContentView(R.layout.activity_main); 

    GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); 

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


} 

清单

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

<uses-sdk 
    android:minSdkVersion="8" 
      android:targetSdkVersion="16"/> 
    <permission 
     android:name="com.example.maptest.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 
    <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="com.example.mapdemo.permission.MAPS_RECEIVE"/> 


    <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" > 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="removed"/> 


    <activity 
     android:name="com.example.maptest.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <category android:name="android.intent.category.EMBED"/> 
      <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"/> 
</application> 

</manifest> 

布局的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" > 

    <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="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.MapFragment"/> 
</RelativeLayout> 

的关键是v2和我也跟着严格的谷歌教程我发现。我也导入了android play服务。

有人可以帮我吗? :)

+0

你的oncreate方法setContentView(R.layout.activity_main);叫两次 –

回答

3

我在尝试Map API v2时遇到了类似的错误。但是,我不知道它是否会帮助你。

我的问题是,google-play-services_lib必须作为库包含在内。在Eclipse中,你可以做到这一点,如下所示:

  1. 使用Android SDK管理器下载库。
  2. 在您用来安装SDK的文件夹中指向google-play-services_lib的地方,从现有代码创建一个新的“Android项目”。
  3. 在“项目 - >属性 - > Android”下将此项目标记为“库”。
  4. 在你的项目中,打开“项目 - >属性 - > Android”并点击库中的“添加”部分。选择google-play-services_lib。

至少这对我有效。

+0

mhm,我明白你的意思。但我有一个问题:当我试图从一个现有的代码打包一个项目并导航到该项目时,该项目显示,但以灰色字母显示,所以我无法检查它...你知道为什么会这样吗? – user1984921

+0

我不确定你的意思。你能提供一张照片吗?然而,我不是一个Eclipse专家,并在这个问题上挣扎了几个小时...... – Dan

+0

对不起,我不能插入图片,因为我是一个新用户。当我尝试将libary项目导入到工作区时,它告诉我,它已准备就绪,但我认为它不是 – user1984921

相关问题