c# - 尝试从资源加载样式时 Xamarin.Android 崩溃
问题描述
Xamarin 的另一天和另一个问题!
所以,空白Xamarin.Android
项目。在资源下的文件夹中创建了一个自定义样式/形状,mipmap-anydpi-v26
因为如果我在其他地方甚至在另一个新的子文件夹中创建它,它就无法访问。即使drawable
解决方案中的任何地方都没有文件夹(这对我来说非常令人费解。)
无论如何,这是它的外观:
我的形状.xml
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff" />
<size android:height="10dp" android:width="10dp"/>
<corners android:radius="130dp" />
</shape>
然后我将它设置为 abackground
如下LinearLayout
:
<LinearLayout android:layout_height="match_parent"
android:layout_weight="match_parent"
android:background="@mipmap/myshape"/>
它在设计器中完美显示。即使在模拟器中,它在调试和发布模式下也能很好地工作。
当我尝试在物理设备(三星 Galaxy J2)中调试它时,会出现 Thr 问题。它运行 Android 5.1(API 级别 22)(请注意,我的项目的最低要求是 API 级别 21)。因此,当我尝试通过设备调试应用程序时,出现以下错误:
Java.Lang.Exception:二进制 XML 文件第 1 行:膨胀类时出错
MainActivity.cs
在'sOnCreate()
方法的以下行中抛出错误:
SetContentView(Resource.Layout.activity_main);
但是,如果我将背景设置为ic_launcher
似乎是徽标,但将其作为.xml
文件存储在mipmap-anydpi-v26
文件夹中,则效果很好。ic_launcher.xml
看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
所以,我有点困惑如何将形状设置为背景呢?我浏览了其他 SO 帖子,但几乎所有帖子似乎都有drawable
我的情况下缺少的文件夹。即使在一个新项目中,该文件夹也丢失了。您可以通过创建一个空白Xamarin.Android
项目来简单地复制它。
那么,关于为什么它可能会在物理设备上崩溃的任何想法?
解决方案
...拥有我的情况下缺少的可绘制文件夹。
drawable
只需在您的文件夹中创建一个文件Resources
夹。
注意:通过 IDE 的解决方案/项目资源管理器执行此操作,而不是文件系统。
有许多 Resources 文件夹,默认情况下 Xamarin 模板不会创建所有这些文件夹。
注意:它们实际上是res/xxxx
在 Android APK 文件结构中。
回复:https ://developer.android.com/training/multiscreen/screendensities
推荐阅读
- python - 保存到数据库时预期的字符串或类似字节的对象django
- c# - 避免实体框架中 ThenLoadRelated() 之后的重复调用
- angularjs - 角链式预输入中断与空格
- electron - 编写自定义 Electron-Forge Maker
- autodesk-forge - Revit的错误设计自动化
- node.js - 使用外部 webhook 在 Dialogflow 中读取 Google 表格并显示内容
- javascript - 测试 2 个 Sprite 是否在 Javascript 中接触
- sql - 如何使用 Visual Studio 更新 SQL 数据库?
- r - 如何仅使用 R studio 绘图设备组合绘图?
- azure - 如何设置电子邮件通知,以便 BPE 和 BPO 在用户故事完成时收到电子邮件 - DevOps