Java Android地图应用找不到正确的地图视图
我制作了一个使用谷歌Android地图API V2的应用程序,我遵循了谷歌提供的指南中的每一步,但它无法正常工作,每次我尝试启动它时,它都会崩溃 问题似乎是,它不是在寻找com.google.android.gms.maps.MapView,这是android maps API V2的地图视图,而是在寻找com.google.android.maps.MapView,这是android maps API V1的地图视图,我想知道我该如何改变它Java Android地图应用找不到正确的地图视图,java,android,api,maps,Java,Android,Api,Maps,我制作了一个使用谷歌Android地图API V2的应用程序,我遵循了谷歌提供的指南中的每一步,但它无法正常工作,每次我尝试启动它时,它都会崩溃 问题似乎是,它不是在寻找com.google.android.gms.maps.MapView,这是android maps API V2的地图视图,而是在寻找com.google.android.maps.MapView,这是android maps API V1的地图视图,我想知道我该如何改变它 03-04 00:26:51.274: E/dalv
03-04 00:26:51.274: E/dalvikvm(14369): Could not find class 'com.google.android.maps.MapView', referenced from method com.cornboyzmaps.googlemapsA.MainActivity.onCreate
MainActivity.java
package com.example.name;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
}
}
活动\u main.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.name"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<permission
android:name="com.example.name.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.name.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true" >
<activity
android:name="com.example.name.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>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.name"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<permission
android:name="com.example.name.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.name.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true" >
<activity
android:name="com.example.name.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>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
您是否尝试过使用setContentView正常扩展xml布局?现在看起来您正试图从xml片段中生成一个片段 在activity_main.xml中,不应该有映射片段,因为它是通过编程方式添加的。我要做的是将activity_mail.xml更改为包含一个Framelayout,该Framelayout将成为片段容器。例如:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
之后,在MainActivity.java中,您应该为Framelayout找到DviewById并添加mapfragment。
另外,奇怪的是,MapView出现了错误,但代码中没有。也许你可以发布更多的代码?
com.cornboyzmaps.googlemapsA.MainActivity
是有问题的类。您正在显示com.example.name.MainActivity
的代码列表。您的应用程序中是否有一个名为com.cornboyzmaps.googlemapsA
的独立程序包,其中可能包含您试图运行的独立MainActivity
?是的,真正的程序包名为com.cornboyzmaps.googlemapsA(我也把它改成了com.example.name.MainActivity,因为它显示了我的代码是什么样的,结果也很傻),这就是我实际使用的(MainActivity.java代码来自com.cornboyzmaps.googlemapsA)。从您在此处发布的内容中没有明显的错误。请尝试创建一个单独的项目来重现错误。如果可以,请将该项目全部发布到某个位置。如果无法使用单独的项目重现错误,则需要逐步使单独的项目看起来更像您的主项目ct,直到错误重新出现或您的单独项目拥有所有正确的代码(在这种情况下,只需将您的开发切换到单独的项目)。OP将片段添加到内置的android.R.id.content
FrameLayout
,这非常合理。但这确实意味着布局XML文件是多余的。