gpt4 book ai didi

android - 未处理的异常 : Android. Views.InflateException:二进制 XML 文件行 #1:二进制 XML 文件行 #1:类 fragment 膨胀时出错

转载 作者:行者123 更新时间:2023-11-30 00:18:57 28 4
gpt4 key购买 nike

我正在尝试将谷歌地图集成到 Xamarin Android。但是,如标题中所写,收到错误。此错误出现在我的 SetContentView (Resource.Layout.Main); 上,如下所示:

Error occurred in MainActivity.cs

我的 map google play 服务是最新的。我试过清理和重建项目,重新启动 VS 对我也不起作用。没有论坛回答了我的问题。

这些是我在项目中写的:

MainActivity.cs

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Gms.Maps;

namespace Google_maps.Droid
{
[Activity (Label = "@string/Google_maps.Android", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity, IOnMapReadyCallback
{
private GoogleMap mMap;

protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
SetUpMap();

}

private void SetUpMap()
{
if (mMap == null)
{
FragmentManager.FindFragmentById<MapFragment>(Resource.Id.map).GetMapAsync(this);
}
}

public void OnMapReady(GoogleMap googleMap)
{
mMap = googleMap;
}

}
}

Main.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

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



</LinearLayout>

Strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Click Me!</string>
<string name="app_name">Google_maps.Android</string>
<string name="google_maps_key">my_API_key</string>
<string name="Google_maps.Android">Google maps</string>
</resources>

最后,

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Google_maps.google_mapsAndroid" android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="15" />
<application android:label="Google_maps.Android" android:icon="@drawable/Icon">
<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="@string/google_maps_key" />
</application>
<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" />
</manifest>

有关其他信息,我遵循了 youtuber Joe Rock 的方法,他在其中教我们如何设置谷歌地图。这是他视频的链接:

https://www.youtube.com/watch?v=W6Q0olRPsus

如果您查看评论部分,您会发现许多其他人也遇到了同样的问题。这个视频是2 年前 制作的,所以我能理解为什么它在当前情况下不起作用。但是,如果你们能启发我将谷歌地图集成到我的 android 移动应用程序的正确方法,我将不胜感激,如果不知何故,这种方法不再可靠。提前谢谢你。

问候,Xamarin 和编程新手。

编辑:

当我将鼠标拖到 SetContentView (Resource.layout.Main) 时,它显示 void Activity.SetContentView(int LayoutResID)(+2 重载)在布局资源上设置 Activity 内容。

我应该担心这个吗?

最佳答案

所以我的项目无法打开,在这种情况下我不得不从头开始重新创建我的项目。我对我的模拟器进行了更改,我认为这可能一直是问题所在,并设法让它工作并删除了标题上的错误。

不过,目前唯一的问题是,它只在左下角显示“google”标志,而没有 map 。我可能应该在另一个线程中写这个?因为现在不同了。

但到目前为止,错误已被删除,我相信设备和 android 版本在其中发挥了重要作用。

编辑:

你好,我已经成功地让谷歌地图在我的应用程序上完全运行。正如我之前所说,“设备和 android 版本在开发应用程序中起着重要作用”。仅供引用,我使用的是 Android 版本 7.1 (Nougat)、Nexus 5 设备、Google API x86 - API 25。

  1. 在属性 >> Android Manifest 中将编译器设置为 8.0 (Oreo) >> 应用程序和目标为“使用使用 SDK 版本编译”。

  2. 将 Xamarin Inc. 的 GoogleMaps 包从 NuGet 包管理器(位于工具中)更新到最新的稳定版本。我目前最新的稳定版本是 42.1021.1。

  3. 将 Xamarin Inc. 的 Xamarin.Android.Support.Compat 从 Nuget Package Manager 更新到最新稳定版本最新稳定版本工具/强>。我目前最新的稳定版本是 26.0.2。如果 fragment 库没有随之更新,则手动更新即可。

  4. 我添加了可能缺少的权限,如下所示:

<permission android:name="googleMapsProject.googleMapsProject.droid.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="com.deg.blubcnmobl.droid.permission.MAPS_RECEIVE" />

仅供引用 googleMapsProject.googleMapsProject 是您的包名称。确保它不是以大写字母开头,并且与您在 Google 控制台的 key 限制页面中写入的包名称相匹配。

  1. 所有这些都在 google maps API v2 上运行。

这几乎就是我让​​它工作的方式。希望这对您有所帮助!

关于android - 未处理的异常 : Android. Views.InflateException:二进制 XML 文件行 #1:二进制 XML 文件行 #1:类 fragment 膨胀时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678965/

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