Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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
Java Android地图应用找不到正确的地图视图_Java_Android_Api_Maps - Fatal编程技术网

Java Android地图应用找不到正确的地图视图

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

我制作了一个使用谷歌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/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文件是多余的。