谷歌地图V2 - 错误膨胀类片段

use*_*672 35 android google-maps-android-api-2

我正在尝试我的手和Android应用程序开发.我目前正在使用Eclipse(我不记得版本,无论最新版本是什么).我越过了一座桥,在那里我似乎无法理解我做错了什么.我正在尝试使用Google Maps V2 API.我已经浏览了几个文档并尝试了几种技术,所有这些都导致了同样的错误:

Android.view.Inflate Exception: Binary XML file line #2: Error inflating class fragment
Run Code Online (Sandbox Code Playgroud)

我一直在把钥匙砸到钥匙上2天,试图抓住我在这里做错了什么.

我做过的事情:

  1. 从空白活动开始.
  2. 项目- >属性- > Android的- > 项目建设目标是谷歌的API - 4.2 - API 17 -我已经试过所有的其他选项,以及(只要在3.0以上的版本,发现里面记录
  3. 将google-play-services_lib添加到我的Package Explorer中.我表示google-play-services_lib确实如此a library.
  4. 项目 - >属性 - > Android - >库 - >添加 - >我选择google-play-services_lib的位置.
  5. 包含android-support-v4.jar在我的项目的依赖项中.

我从类似于我的问题尝试了很多不同的答案,但无济于事.:(我通常可以解决这些问题,但也许我太过分了.

我在eclipse中的包浏览器树看起来像

  1. 谷歌播放,services_lib
  2. Svma

这是代码:>

activity_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="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"/>
Run Code Online (Sandbox Code Playgroud)

表现

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

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

    <permission
        android:name="com.testing.svma.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.testing.svma.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" >
        <activity
            android:name="com.testing.svma.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="SHA1_Generated_KEY_HERE" />
    </application>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
</manifest>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

package com.testing.svma;

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


    }
}
Run Code Online (Sandbox Code Playgroud)

参考文件

  1. 我使用谷歌地图"错误膨胀类片段"来尝试解决我的问题.

  2. 我引用了这个谷歌地图快速入门指南来创建我的项目.

  3. 我最初开始使用Google Maps Android V2 Api简介中的示例代码

  4. 一大堆SO问题.

所以,SO社区,我做错了什么?为什么我无法掌握这个简单的概念.

先感谢您.

Dav*_*vid 32

我知道这可能是一个死线程,但万一有人偶然发现有相同的问题 - 你的清单可能缺少以下元信息:

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)

<application>元素中声明它,你的代码应该工作.我在跳过此步骤的youtube教程之后遇到了同样的问题,只有仔细阅读原始Google教程后我才注意到丢失的代码.

无论如何,希望这有助于某人.


use*_*212 23

我有相同的代码/相同的问题!尝试在布局中将android:name ="com.testing.svma.MainActivity"添加到"fragment"!它为我解决了这个问题

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:name="com.testing.svma.MainActivity"/>
Run Code Online (Sandbox Code Playgroud)


小智 6

我有同样的问题,通过修改清单来解决它.这是我的表现.

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

        <permission 
               android:name="example.gps.permission.MAPS_RECEIVE" 
               android:protectionLevel="signature"></permission>
      <!-- Copied from Google Maps Library/AndroidManifest.xml. -->
         <uses-sdk
           android:minSdkVersion="9"
           android:targetSdkVersion="17"/>
         <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
         <uses-permission android:name="android.permission.INTERNET"/>
         <uses-permission      android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
      <!-- External storage for caching. -->
         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <!-- My Location -->
         <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
         <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
      <!-- Maps API needs OpenGL ES 2.0. -->
         <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>
      <!-- End of copy. -->

        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme"
            android:hardwareAccelerated="true" >
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="<YOUR VALUE>"/>
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
            <activity
                android:name="example.gps.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>
        </application>

    </manifest>
Run Code Online (Sandbox Code Playgroud)

而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="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"
    />
Run Code Online (Sandbox Code Playgroud)

java类是

   public class MainActivity extends FragmentActivity
        {
           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
           }
        }
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题

  • 你应该添加**一些描述**来改变你所做的改变.虽然发布的代码可以帮助某人,但您应该指定**代码的作用**. (4认同)