在主题中使用 fontFamily 属性时,Toast 会抛出 ArrayIndexOutOfBoundsException 和 appcompat v26

2023-12-06

每当我展示一个Toast,应用程序崩溃。

如果我使用旧版本的 AppCompat 库或删除该应用程序,则该应用程序可以正常工作fontFamily从风格上。

创建时:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toast.makeText(this, "Test", Toast.LENGTH_SHORT).show(); //line 13
}

依赖关系:

compile 'com.android.support:appcompat-v7:26.1.0'

应用程序主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:fontFamily">sans-serif-light</item>
</style>

堆栈跟踪:

引起原因:java.lang.ArrayIndexOutOfBoundsException: length=16;索引=233 在 android.content.res.StringBlock.get(StringBlock.java:65) 在 android.content.res.XmlBlock$Parser.getPooledString(XmlBlock.java:458) 在 android.content.res.TypedArray.loadStringValueAt(TypedArray.java:1212) 在 android.content.res.TypedArray.getString(TypedArray.java:202) 在 android.support.v7.widget.TintTypedArray.getString(TintTypedArray.java:143) 在 android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:215) 在 android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) 在 android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:81) 在 android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:71) 在 android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) 在 android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) 在 android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:518) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:426) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:377) 在 android.widget.Toast.makeText(Toast.java:266) 在 io.yarsa.blankapp.MainActivity.onCreate(MainActivity.java:13) 在 android.app.Activity.performCreate(Activity.java:6679) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6126) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

有没有其他选择,以便我可以使用fontFamily主题中的属性使用最新版本AppCompat图书馆?


在主题中添加字体,如下所示-

    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
        <item name="android:textViewStyle">@style/TextViewStyle</item>
        <item name="android:buttonStyle">@style/ButtonStyle</item>
    </style>

    <style name="TextViewStyle" parent="android:Widget.TextView">
        <item name="android:fontFamily">sans-serif-light</item>
    </style>

    <style name="ButtonStyle" parent="Widget.AppCompat.Button">
        <item name="android:fontFamily">sans-serif-light</item>
    </style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在主题中使用 fontFamily 属性时,Toast 会抛出 ArrayIndexOutOfBoundsException 和 appcompat v26 的相关文章

  • 简单对话框中的 ViewPager

    我想在对话框中使用 ViewPager 但失败了 这是所有代码 对话框中显示两个片段 Layouts main xml
  • Android 错误 - close() 从未在数据库上显式调用

    我应该在代码的哪里调用 close LogCat 返回此错误 close 从未在数据库上显式调用 android database sqlite DatabaseObjectNotClosedException 应用程序未关闭此处打开的游标
  • 有没有办法隐藏 TextView 中的文本?

    有没有办法隐藏 TextView 中的部分 但不是全部 文本 我尝试使用 AbsoluteSizeSpan 将大小设置为 0 但这没有任何我看到的视觉效果 你可以将大小设置为 1 但实际上你会得到凹凸不平的线条 而不是可读的文本 很可爱 但
  • 将网页保存到android中的webview缓存中

    我正在创建一个应用程序 它将从互联网下载一些网页 并在用户单击按钮时将它们保存到缓存 并在没有互联网可用时加载它们 当我运行代码时 出现空指针异常 我已在清单文件中添加了所有必要的权限 public class MainActivity e
  • Android 闹钟应用程序在 Oreo 下因 NullPointerException 导致 SystemUI 崩溃(仅限)

    我有一个 Android 闹钟应用程序 我有通常的 警报意图 gt 接收器 gt 活动链 其最后一步创建一个全屏窗口并发出警报 所有这些在 Oreo API 26 之前的 Android 版本上都可以正常工作 但在 Oreo 上 当警报触发
  • 如何使用 queryIntentActivityOptions() 方法

    我正在尝试创建一个对话框 显示用户手机中的所有应用程序 可用于从存储中选择照片或使用相机拍摄照片 以下是我计划使用的两个意图 Intent photoPickerIntent new Intent Intent ACTION PICK ph
  • Android 拖放 ACTION_DRAG_ENDED 未触发

    我真的很花时间解决这个问题 到目前为止找不到任何有相关经验的朋友 这是我发布第一个应用程序之前的最后一个功能 所以在结局即将到来的情况下陷入困境让我发疯 如果我将对象放在可接受的区域中 我的拖放效果会非常好 但是 如果拖放到其他地方 我不会
  • Android:如何在双 SIM 卡手机中获取两张 SIM 卡的 SIM ID

    我想获取双 SIM 卡手机中两个 SIM 卡的 SIM 序列号 ID 有什么方法可以获取它们吗 提前致谢 import java lang reflect Method import android content Context impo
  • 将可渲染节点(相同的旋转、位置和比例)替换为 Sceneform sdk 中的另一个可渲染节点

    我是 Android 版 sceneform sdk 的新手 我已经添加了一个Transformable Node 然后我应用了一些旋转 缩放并改变了它的位置 现在 单击按钮后 我需要放置具有相同旋转 缩放和位置的第二个节点 为此我所做的是
  • 实施材质主题时遇到问题

    我在用this http antonioleiva com material design everywhere 作为在 Android 5 0 之前的设备上向现有应用程序实施 Material 主题的教程 我的问题是我得到了Null Po
  • 从 JSON 数组创建标记 php mySQL Google Maps v2 android

    我正在尝试从 mySQL 数据库在 Google Maps v2 上创建标记 但它不起作用 地图确实出现了 但没有标记 谁能告诉我出了什么问题以及我需要改变什么 我也尝试过让 getDouble 为 getDouble 0 和 getDou
  • 如何在应用程序中创建会话对象

    在我的应用程序中 我想创建一个用于登录和注销的会话 我不知道如何使用会话 任何人都可以通过提供一些示例来帮助我 我认为会话对象应该是在应用程序开始运行时声明和初始化的静态对象 我遇到了这个问题 并决定将我的会话对象放入 utils 类中 该
  • 如何从MediaCodec获取解码格式?

    我正在与MediaCodec 我用它来解码 mp4 video MediaCodec 将视频解码为YUV格式 但我需要得到RGBA 一切都很好 但我发现有几种可能的格式 例如YUV420 YUV422等等 因此 据我所知 要进行转换 我需要
  • Gradle创建多项目Jar

    因此 从 Gradle 和 Android Studio 诞生之初起 我就一直在使用它们 然而 我发现自己用头撞墙的次数有时远远超过了它的价值 我花了一天半的时间试图解决我目前的困境 在我工作的地方 我们使用很多共享库项目 这意味着与 Gr
  • webView.loadUrl 显示空白屏幕

    我必须加载这些通过使用下面的代码 但最终显示空白屏幕作为输出 您可以检查url代码之间的链接位于last line WebPagerLoader java public class WebPageLoader extends Activit
  • 如何在按下硬件主页按钮时关闭所有活动?

    我有一个应用程序 其中有 5 个活动 一个菜单活动和另外 4 个子活动附加到菜单屏幕 所以我可以选择任何活动 然后返回菜单 假设我像这样四处走动 菜单 gt 活动 1 gt 菜单 gt 活动 3 gt 活动 2 gt 菜单 现在我按 主页
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • Android 上的 Facebook 深度链接

    我正在尝试在我的应用程序上实现 Facebook 的深度链接功能 并遇到了以下情况 我有一个名为 MainActivity 的活动 其声明如下
  • Android 处理 ListView 中的多个 EditText 字段

    只是一个基本问题 如果我有几十个 EditText 字段是 ListAdapter 的一部分 那么各个 EditText 字段如何知道它们属于哪一行 目前我正在使用 TextWatcher 来监听文本输入 我尝试扩展 TextWatcher
  • 安装 APK 时出现会话“应用程序”错误

    我在将 Android Studio 1 1 编写的项目导入 Android Studio 2 1 2 时遇到困难 每当在平板电脑上测试应用程序之前构建 gradle 时 我都会收到此错误 下面是错误的屏幕截图 有谁知道是什么问题 我尝试过

随机推荐

  • 如何在 Bash/Debian 中获取文件创建日期/时间?

    我在 Debian GNU Linux 6 0 上使用 Bash 是否可以获得文件创建日期 时间 不是修改日期 时间 ls lh a txt and stat c y a txt两者都只给出修改时间 不幸的是 您的任务一般来说是不可能的 因
  • 格式错误,无需诊断 (NDR):C++14 中的 ConstExpr 函数抛出

    include
  • FFMPEG av_interleaved_write_frame():不允许操作

    好的 我在尝试对 MOV 文件进行编码时收到 av interleaved write frame 不允许操作 错误 首先我需要概述一下其背后的条件 我通过在 cron 上运行的 PHP 脚本对 12 个不同分辨率大小和格式类型的不同文件进
  • R:如何按组计算数据表的多列滞后

    我想计算数据表中按 id 分组的变量的差异 这是一些示例数据 数据以 1 Hz 的采样率记录 我想估计一阶和二阶导数 速度 加速度 df lt read table text x y id 1 2 1 2 4 1 3 5 1 1 8 2 5
  • 在 WPF 中连接静态资源

    我需要将字符串资源中的两个字符串连接到标签中 我想要这样的东西
  • 计算可用带宽

    我需要在 Windows 中用 C 编写代码来计算可用带宽 我目前计划使用云杉算法 我想知道在 Windows 中是否有任何可用于该算法的代码 或者是否有任何其他技术来获取互联网带宽 搜索 云杉算法 给了我这个结果http iris csa
  • 自动递增 id JSON

    我正在制作一个 RESTful Web 服务 我希望发布到 JSON 文件的项目有一个 Id 我一直在到处搜索 但找不到任何有关如何执行此操作的信息 JSON 看起来像这样 id 2 title Hello World artist Joh
  • iOS Google 地图 SDK - 隐藏/删除标签

    我在我的 iOS 项目中使用 Google Maps SDK 我正在使用 Swift 和我想在 UIView 中显示 Google 地图 不带任何文本或标签 我能够正确显示地图 但无法从地图中删除文本 我在 Javascript 中看到了同
  • 使用 node.js 解密 AES256 返回错误的最终块长度

    使用这个Gist我能够在 Node js 0 8 7 中成功解密 AES256 然后 当我升级到 Node js 0 10 24 时 我现在看到以下错误 类型错误 错误 0606506D 数字信封 例程 EVP DecryptFinal e
  • MD5 哈希加盐,用于在 C# 中将密码保存在数据库中

    您能否告诉我一些简单的算法 用于通过 MD5 哈希用户密码 但使用salt以提高可靠性 现在我有这个 private static string GenerateHash string value var data System Text
  • 在 JavaScript 中获取 CSS 类名

    我面临着从 JavaScript 中的字符串获取类名的问题 例如 var ddd p class Box title Heading text here p 现在我想从中获取 p 标签的类名 浏览器擅长 HTML 解析 setup var
  • 如何获取 kivy 按钮的 Id 和 Text 值作为字符串?

    我有一个带有多个按钮的应用程序 我需要在按下按钮时以字符串形式获取按钮的 id 和文本值 然后 抓取的按钮 ID 和文本值将被传递到另一个函数以进行进一步处理 为了简单起见 我编写了这个示例程序 main py from kivy app
  • ZMQ ROUTER中的客户端维护

    ZeroMQ ROUTER 套接字如何在内部维护其客户端连接 该指南称每个客户都会获得一个唯一的 ID 但并不清楚 什么算作客户端 每台机器不同的客户端或每个连接的应用程序不同 从客户端收到的请求数量是否有限制 原因是 我正在对这段代码进行
  • 图像比较并返回百分比

    int DiferentPixels 0 Bitmap first new Bitmap First jpg Bitmap second new Bitmap Second jpg Bitmap container new Bitmap f
  • Angular:承诺内的异步等待 - 事件监听器

    从一天起我就一直在这个问题上苦苦挣扎 我想创造这样一种情况 img 在 component ts 文件中我只想包含这一行 this userdp this userService getUserDp 在 getUserDp 中 代码如下 a
  • 如何重新标记 matplotlib 热图的轴刻度

    我正在关注这个例子生成热图 是否可以重新标记 X 轴上的值 并向其添加一个常量 例如 我希望 X 轴上的数字不是 0 1 2 3 4 而是 5 6 7 8 9 您可以使用关键字参数来标记 x 轴和 y 轴extent在致电imshow 这是
  • 如何从Python列表中生成所有可能的排列对? [复制]

    这个问题在这里已经有答案了 如何从 Python 列表中生成所有可能的对排列 Example input 3 8 2 output 3 8 3 2 8 3 8 2 2 3 2 8 您可以使用itertools permutations im
  • 带有 CTE 的 BigQuery UPDATE 语句

    正在寻求有关 BigQuery 的帮助 我似乎无法在 UPDATE 语句中使用 CTE 即 with ctename as select column1 column2 column3 from blah update table2 set
  • 如何禁用引导列中的垂直滚动

    我有两个引导列 左 和 右 我想用屏幕修复左栏并禁用滚动 但我想在右列中启用滚动 这将有更多内容 基本上我想显示帖子 使帖子标题显示在左列中 帖子内容显示在右列中 完全相同this 注 我用过overflow y hidden 但没有成功
  • 在主题中使用 fontFamily 属性时,Toast 会抛出 ArrayIndexOutOfBoundsException 和 appcompat v26

    每当我展示一个Toast 应用程序崩溃 如果我使用旧版本的 AppCompat 库或删除该应用程序 则该应用程序可以正常工作fontFamily从风格上 创建时 Override protected void onCreate Bundle