2013-06-01 46 views
0

好吧,我已经遵循了一个关于如何在Android中实现Google Maps V2的教程,但是我得到了“Class not found Exception”,当然应用程序在打开时崩溃。谷歌地图V2不适合我,我做错了什么?

这里是我的清单文件:

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

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

    <uses-permission android:name="com.traincoders.transtracker.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_FINE_LOCATION" /> 

    <permission 
     android:name="com.traincoders.transtracker.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

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

     <activity 
      android:name="com.traincoders.transtracker.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="*** API KEY ***" /> 
    </application> 

</manifest> 

这是一个简单的布局,只有一个片段,根据我读,我应该使用,因为向后兼容的SupportMapFragment,说不上如果这是正确与否:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.MapFragment"/> 

</LinearLayout> 

,这是我的活动类,它延伸到FragmentActivity:

package com.traincoders.transtracker; 

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.main_activity);  

    } 

} 

这是我的工作空间的外观现在(与库和东西)

http://puu.sh/36dil.png

我已经添加了库,它应该是通过执行以下操作:

http://puu.sh/36dkw.png

这是我得到的堆栈跟踪:

http://puu.sh/36dmU.png

添加部件:另外,当我编译时,为什么我在目标版本4.1.2之前有警告图标?

http://puu.sh/36egv.png

+0

你可能只是没有把它贴在这里,但确实的'MainActivity.java'文件有'包com.traincoder.transtracker;'就顶线? –

+0

是的,它有包名称对不起,我没有添加它@Lablabla – msqar

+0

如果你改变它来扩展'Activity'并从清单中删除''标签,它是否仍然会给你同样的错误? (我不是很熟悉碎片,只是想排除东西) –

回答

0

为u写道前面您应该使用SupportMapFragment,因为某些原因,我与configurate SupportMapFragment光学少的问题。 您也可以尝试清理您的项目,然后通过Android工具修复项目属性。我都做到了无LinearLayout中,也许它会帮助:

<?xml version="1.0" encoding="utf-8"?> 

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

否:(继续你的建议,做了一切都没有失败......这是stacktrace仍然http://puu.sh/36i5r.png我甚至已经添加了google_services_lib在我的/ lib文件夹中,并从Properties中引用项目中的lib。另外,如果我将Google-API作为目标,则会出现这个小小的警告图标:http://puu.sh/36egv.png为什么是这样?:S – msqar