0

我正在尝试使用 Google Maps 制作一个简单的 Android 项目,但是,我似乎无法通过一个简单的错误

这是源代码:

package mapa.pack.mapamerodeador;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

    public class ActividadPrincipal extends FragmentActivity {

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

此外,这是布局:

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:background="@color/fondo_pag1"
        android:orientation="vertical">

            <TextView 
                      android:id="@+id/titulo_pag1"
                      android:layout_height="wrap_content"
                      android:layout_width="fill_parent" 
                      android:layout_alignParentTop="true"
                      android:text="@string/pag1"
                      android:textSize="23sp"
                      android:gravity="center_horizontal"/>

            <fragment
                class="com.google.android.gms.maps.SupportMapFragment"
                android:id="@+id/mapa"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_below="@id/titulo_pag1"
                android:layout_marginBottom="4sp"
                android:layout_marginTop="2sp"
                android:layout_above="@+id/buttonUno" />

            <Button
                android:id="@+id/buttonUno"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5dp"
                android:layout_marginRight="5dp"
                android:padding="5dp"
                android:background="@color/gris"
                android:layout_alignParentRight="true"
                android:layout_alignParentBottom="true"
                android:text="@string/link_pag_2" />

 </RelativeLayout>

最后但并非最不重要的是,清单:

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

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission    android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
 Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<permission
    android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>
<uses-permission android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE"/>

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

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

    <activity
        android:name="mapa.pack.mapamerodeador.ActividadPrincipal"
        android:theme="@android:style/Theme.NoTitleBar"
        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:theme="@android:style/Theme.NoTitleBar" 
        android:name="mapa.pack.mapamerodeador.Autores" />

    <activity 
        android:theme="@android:style/Theme.NoTitleBar"
        android:name="mapa.pack.mapamerodeador.Ajustes" />

    <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
        android:value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
</application>
</manifest>

我知道清单中有一些我在代码中没有提到的活动,但这是因为即使是这两行似乎也不起作用,所以我评论了其余的。当我尝试执行它时,我得到一个“java.lang.NoClasDefFoundError: com.google.android.gms.R$styleable at com.google.gms.maps.GoogleMapsOptions.createFromAttributes(UnknownSource)”
有谁知道可能是什么问题?谢谢!!=)

编辑:如果我在 XML 中评论 <fragment> ,那么它不会显示任何东西,但至少它不会崩溃,所以我认为有什么问题,就在那里,有什么办法可以解决它吗?

4

2 回答 2

0

您的清单文件中有一些问题:

1.当你的包名是:

package="mapa.pack.mapamerodeador"

在您设置的谷歌地图权限中mapa.pack.merodeador

<permission
android:name="mapa.pack.merodeador.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>

必须相同。

2.删除此代码:

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

这是一个Google Map API V1许可,在Google Map API V2.

3.但是由于您的错误,我的猜测是您没有google-play-services正确引用该库。检查我写的这篇博文的前三个步骤,并确保所有步骤都正确:

谷歌地图 API V2

于 2013-04-11T18:58:31.540 回答
0

模拟器不显示新的 Google Map api v2。你需要有一个真实的设备来测试它。

于 2013-04-11T18:40:02.147 回答