2013-07-12 75 views
0

所以我没有成功搜索互联网,并遵循无数的教程,但我仍然无法让我的应用程序渲染地图。最好的情况是,我可以通过缩放切换显示一个屏幕,但没有地图,我得到一个“无法找到com.google.android.gsf.gservices的提供商信息”错误。我检查并重新检查了我的api密钥,它是正确的。安卓谷歌地图v2不渲染

我的活动代码。值得注意的是,这里没有任何事情发生,因为我已经评论了得到地图的片段管理器。如果我取消注释,它会因空指针异常而崩溃。

public class MapActivity extends FragmentActivity { 
private GoogleMap myMap; 
private LatLng Location; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_map); 
    Location = new LatLng(0,0); 
    // MapFragment fragment = (MapFragment)getFragmentManager().findFragmentById(R.id.map); 

    // myMap = fragment.getMap(); 

    } 


} 

我的XML它

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/map" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:name="com.google.android.gms.maps.SupportMapFragment" 
/> 

我的清单文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.Map.android" 
android:versionCode="1" 
android:versionName="1.0" > 

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

<permission android:name="com.Map.android.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="com.Map.android.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-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-feature android:glEsVersion="0x00020000" android:required="true"/> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar" > 
    <activity 
     android:name="com.Map.android.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> 
    <activity 
     android:name="com.Map.android.HomeActivity" 
     android:label="@string/title_activity_home" > 
    </activity> 
    <activity 
     android:name="com.Map.android.MapActivity" 
     android:label="@string/title_activity_map" > 
    </activity> 

    <activity 
     android:name="com.Map.android.Info" 
     android:label="@string/title_activity_info" > 
    </activity> 
    <activity 
     android:name="com.Map.android.InfoActivity" 
     android:label="@string/title_activity_info" > 
    </activity> 
    <meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="MYKEY"/> 
    </application> 

</manifest> 

我明白这是一个问题问过很多次,但我似乎无法找到别人的答案是修复了我的问题。

任何有识之士将不胜感激!

+0

什么设备和Android版本的应用程序崩溃? –

回答

0

如果您正在使用supportmapfragment类作为您的XML定义,那么

添加此import com.google.android.gms.maps.SupportMapFragment;

和更改地图intialisation路线为:

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