我在Eclipse工作了很长很长一段时间(3周)。使用谷歌地图android api v2的“入门”指南我一直遇到这个问题。除了在线阅读各种教程之外,我还尝试了各种各样的方法,从SO上的帖子开始这项工作。在youtube上,我仍然无法使其正常运行。我已经使用了Activity,FragmentActivity,在片段中添加了名称,并且仍然存在使类片段膨胀的错误。
主要错误(LogCat中最顶层的错误)
03-12 11:50:04.793: E/AndroidRuntime(9002): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.map2/com.example.map2.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class fragment
MainActivty.java(我已尝试过Activity& FragmentActivity)
package com.example.map2;
import android.os.Bundle;
//import android.app.Activity;
import android.view.Menu;
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);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Activity_main.xml(我使用了MapFragment和amp; SupportMapFragment)
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.example.map2.MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
Map2Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="19" />
<permission
android:name="com.example.map2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.map2.permission.MAPS_RECEIVE" />
<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"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#" />
<activity
android:name="com.example.map2.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>
图书馆设置的截图等:
答案 0 :(得分:2)
你有
android:minSdkVersion="13"
因此,您需要使用MapFragment
并扩展Activity
。
更改此
class="com.google.android.gms.maps.SupportMapFragment"/>
到
class="com.google.android.gms.maps.MapFragment"/>
并改变这个
public class MainActivity extends FragmentActivity {
到
public class MainActivity extends Activity {
还将metag误认为是应用程序标记的子项
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
答案 1 :(得分:1)
此:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#" />
应该就在此之前:</application>
这可能无法解决您的问题,但可能会导致另一个问题。
另外,如果这是您的整个清单文件,那么您错过了另一个<meta-data>
:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
答案 2 :(得分:0)
我按照谷歌地图Android API V2教程,我有与你相同的代码。我遇到了这个问题,我已经解决了。
如果你想在android api中创建Google Map&lt; 11,你应该保持你的活动和你的布局。您必须添加添加
在你的Android Android Manifest文件上。
&lt;元数据
机器人:名称=&#34; com.google.android.gms.version&#34;
机器人:值=&#34; @整数/ GOOGLE_PLAY_SERVICES_VERSION&#34; /&GT;
这是我的Android清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demogooglemap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<permission
android:name="com.example.demogooglemap.permision.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.demogooglemap.permision.MAPS_RECEIVE" />
<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" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCpDUn3K-IJJxqTmR4qIsNHGgNdqF7YmV0" />
<activity
android: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>
</application>
</manifest>
希望得到这个帮助。
答案 3 :(得分:0)
希望有人会觉得它很有用。 我遇到了同样的问题并尝试了一些修复,但没有任何效果。我解决了它如下。 1)我使用的是Android 2.1.2。 2)我使用自动片段创建方法创建片段,如图所示 this screen shot。 3)每次运行程序时都会出现同样的错误。
- &GT;的解决方案强>
我分别为我的片段创建了java类和XML文件 以下。 Java Class Screenshot
同样,我为片段创建了一个新的布局文件。
在我新创建的java类中执行了以下操作。
package com.example.shaoorjan.fragmentxml;
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class BlankFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_blank,container,false);
}
}
一切正常。