gpt4 book ai didi

android - 在谷歌地图 fragment 中膨胀 XML 时出错

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:30 25 4
gpt4 key购买 nike

尝试使用 fragment 显示谷歌地图。使用以下 page作为教程。

我收到异常“Error Inflating class fragment”。

1) 导入 jar google-play-services.jar

2) 下载并配置了 google play services SDK。

3) 获得最新的 v2 API key 。

4) 在 list 中添加权限 com.google.android.providers.gsf.permission.READ_GSERVICES。

5) 使用 mindsdk = 8 和 target = 16。

作为引用,Androidmanifest.xml:

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

<uses-feature android:glEsVersion="0x00020000" android:required="true"/>

<permission
android:name="com.example.com.mapsdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.com.mapsdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

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

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.com.mapsdemo.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="AIzaSyDXPsxWF634gd907NzZKkRkNS0oH9IPWgk"/>


</application>

MainActivity.java

package com.example.com.mapsdemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;

import com.google.android.gms.common.GooglePlayServicesUtil;


//API : AIzaSyDXPsxWF634gd907NzZKkRkNS0oH9IPWgk

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


try {
setContentView(R.layout.activity_main);
} catch (Exception e) {

Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
}



}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

}

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.MapFragment"/>

日志:

01-02 18:31:21.477: I/jdwp(11473): Ignoring second debugger -- accepting and dropping
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
01-02 18:31:24.493: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
01-02 18:31:24.509: D/libEGL(11871): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
01-02 18:31:24.602: D/OpenGLRenderer(11871): Enabling debug mode 0

最佳答案

Error inflating class fragment当您尝试使用 native API 级别 11 版本的 fragment 时,通常会出现这种情况——您的源代码正在这样做——但试图在旧版本的 Android 上运行它。为了使用<fragment>在 API 级别 10 及以下,您必须使用 Android 支持包的 fragment 反向移植:

  • 将 Android 支持包添加到您的项目
  • 继承自FragmentActivity而不是 Activity
  • 使用SupportMapFragment而不是 MapFragment
  • 更改现在基于此反向移植的任何其他内容

或者,您可以设置您的 android:minSdkVersion到 11 或更高,并运行您当前的代码,只是在较新的设备上。

您可以在 the documentation 中阅读有关 Android 支持包的更多信息.

关于android - 在谷歌地图 fragment 中膨胀 XML 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com