Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android mapview强制转换异常错误?_Android_Android Mapview - Fatal编程技术网

Android mapview强制转换异常错误?

Android mapview强制转换异常错误?,android,android-mapview,Android,Android Mapview,我已经在xml布局中添加了一个mapview,其中包含这样一个节点:包含在一个框架中 <fragment android:id="@+id/map" android:layout_width="100dip" android:layout_height="100dip" android:name="com.google.android.gms.maps.MapFragment"/> 在中全局定义地图为

我已经在xml布局中添加了一个mapview,其中包含这样一个节点:包含在一个框架中

<fragment 
          android:id="@+id/map"
          android:layout_width="100dip"
          android:layout_height="100dip"
          android:name="com.google.android.gms.maps.MapFragment"/>
在中全局定义地图为MapView地图

06-02 14:51:12.357: E/AndroidRuntime(32368): FATAL EXCEPTION: main
06-02 14:51:12.357: E/AndroidRuntime(32368): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.KingNozzle/com.KingNozzle.KNAugmentedRealityActivity}: java.lang.ClassCastException: android.widget.FrameLayout cannot be cast to com.google.android.gms.maps.MapView
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.os.Looper.loop(Looper.java:137)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread.main(ActivityThread.java:4745)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at java.lang.reflect.Method.invokeNative(Native Method)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at java.lang.reflect.Method.invoke(Method.java:511)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at dalvik.system.NativeStart.main(Native Method)
06-02 14:51:12.357: E/AndroidRuntime(32368): Caused by: java.lang.ClassCastException: android.widget.FrameLayout cannot be cast to com.google.android.gms.maps.MapView
06-02 14:51:12.357: E/AndroidRuntime(32368):    at com.KingNozzle.KNAugmentedRealityActivity.onCreate(KNAugmentedRealityActivity.java:129)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.Activity.performCreate(Activity.java:5008)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
06-02 14:51:12.357: E/AndroidRuntime(32368):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
06-02 14:51:12.357: E/AndroidRuntime(32368):    ... 11 more
我的整个布局看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical" >

    <FrameLayout
        android:id="@+id/arFrame"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </FrameLayout>

    <TextView
        android:id="@+id/textViewLocation"
        android:layout_width="fill_parent"
        android:layout_height="20dp"
        android:text="no signal"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <fragment 

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

    <com.KingNozzle.Views.KNMultiDirectionalSlidingDrawer
        xmlns:my="http://schemas.android.com/apk/res/com.KingNozzle"
        android:id="@+id/drawer"
        my:direction="topToBottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        my:handle="@+id/handle"
        my:content="@+id/content">

       <include
           android:id="@id/content"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           layout="@layout/empty_rel" />



        <ImageView
            android:id="@id/handle"
            android:layout_width="wrap_content"
            android:layout_height="40px"
            android:src="@drawable/sliding_drawer_handle_bottom" />
    </com.KingNozzle.Views.KNMultiDirectionalSlidingDrawer>

</RelativeLayout>


似乎无法找到为什么它认为它是一个框架视图,它是一个
MapFragment
,而不是
MapView
。您应该查看
MapFragment
的文档,以便在
MapFragment
中执行相同的操作

所以可能是这样的:

MapFragment map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))

在xml中,将MapFragment更改为SupportMapFragment

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

你试过清洁和重建吗?我试过。。我还没有尝试过删除gen文件并进行清理..我认为您使用的是MapView ie android google maps V1,它已被弃用,对于v2,请查看此链接我非常确定我使用的是v2。。事实上,我现在有点工作了。。尽管有时当我构建地图时会显示,有时不会,好像API键是坏的。。但我不会改变我的密钥库或任何东西。。另外,当我将zoom设置为2时,如果我在活动MapFragment map=(MapFragment)findviewById(R.id.mapView)中将其引用为MapFragment,它的静态方式也会缩小我遇到一个错误,在我构建它之前,它不能在Eclipse中被强制转换为视图。supportmapfrag做了什么?getSupportFragmentManager似乎不是一个有效的调用我在Eclipse中遇到一个错误,它要求我创建一个名为getSupportFragment的方法,不带导入选项,或者更改为GetFragmentManager您应该使用google播放已安装的服务,并将android-support-v4.jar添加到外部JARST。此功能正在运行。。但是我有一个不同的问题。。将发布一个新问题并链接到此处
<fragment 
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      class="com.google.android.gms.maps.SupportMapFragment"/>
GoogleMap mMap = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();