TypedValue 转换为字符串

2024-01-08

当我使用 Android 应用程序时,LogCat 中随机出现了数十次重复的以下 5 行内容:

10-26 12:53:30.372  21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d8}
10-26 12:53:30.372  21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x1d/d=0xffe51c23 a=2 r=0x7f090047}
10-26 12:53:30.374  21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b008a}
10-26 12:53:30.375  21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d6}
10-26 12:53:30.375  21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d7}

使用已接受答案中的信息这个问题 https://stackoverflow.com/questions/5554876/how-to-identify-where-code-is-incorrect-if-i-get-warning-converting-to-string,我确定它试图将空值(0x0)解释为布尔值(0x12),这是没有意义的,因为我从不处理空值或布尔值。

日志中的资源 ID(r=0x?)指向两个布局之一内的视图/视图属性,我将在下面介绍它们。

在我的代码中,我引用这些资源 ID 的唯一位置是 a) 使用第一个布局的 CursorAdapter,以及 b) 使用第二个布局的类,我也将在下面包含该代码。

我不确定这是否值得担心。我知道相关性并不意味着因果关系,但是当 LogCat 充斥着这些日志时,滚动浏览我的应用程序会明显卡顿。

任何有助于弄清楚发生了什么的帮助将不胜感激。

布局文件#1:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="72dp"
    android:padding="16dp">

    <TextView
        android:id="@+id/event_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:ellipsize="end"
        android:maxLines="1"
        android:text="Title"
        android:textSize="16sp"
        android:textColor="@color/primary_text_color"/>

    <TextView
        android:id="@+id/event_dates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/event_name"
        android:text="Dates"
        android:textColor="@color/secondary_text_color"
        android:textSize="14sp" />

    <TextView
        android:id="@+id/event_location"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/event_name"
        android:layout_toLeftOf="@id/event_dates"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="Location"
        android:textColor="@color/secondary_text_color"
        android:textSize="14sp" />
</RelativeLayout>

布局文件#2:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/event_type"
        android:textSize="14sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/primary"
        android:paddingLeft="16dp"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:text="Header"
        android:textColor="#FFFFFF" />
</LinearLayout>

光标适配器:

public class EventCursorAdapter extends CursorAdapter {

    public String getKey(int position) {
        Cursor c = getCursor();
        c.moveToPosition(position);
        return c.getString(c.getColumnIndex(Database.Events.KEY));
    }

    public EventCursorAdapter(Context context, Cursor c, int flags) {
        super(context, c, flags);
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
        LayoutInflater inflater = LayoutInflater.from(context);
        return inflater.inflate(R.layout.list_item_event, viewGroup, false);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        TextView dates = (TextView) view.findViewById(R.id.event_dates);
        Date startDate = null, endDate = null;
        Log.d(Constants.LOG_TAG, "Start: " + cursor.getString(cursor.getColumnIndex(Database.Events.START)));
        try {
            startDate = new Date(cursor.getLong(cursor.getColumnIndex(Database.Events.START)));
            endDate = new Date(cursor.getLong(cursor.getColumnIndex(Database.Events.END)));
        } catch (Exception e) {
            // Oops.
        }
        dates.setText(EventHelper.getDateString(startDate, endDate));

        TextView name = (TextView) view.findViewById(R.id.event_name);
        name.setText(cursor.getString(cursor.getColumnIndex(Database.Events.NAME)));

        TextView location = (TextView) view.findViewById(R.id.event_location);
        location.setText(cursor.getString(cursor.getColumnIndex(Database.Events.LOCATION)));
    }
}

其他类:

public class EventTypeHeader extends ListHeader {

    public EventTypeHeader(String title) {
        super(title);
    }

    @Override
    public View getView(Context c, LayoutInflater inflater, View convertView) {
        ViewHolder holder;
        if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
            convertView = inflater.inflate(R.layout.list_item_event_type_header, null);
            holder = new ViewHolder();
            holder.text = (TextView) convertView.findViewById(R.id.event_type);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.text.setText(getText());

        return convertView;
    }

    private static class ViewHolder {
        TextView text;
    }
}

EDIT

我将在布局文件中包含每个资源 ID 引用的内容

0x7f0b00d8:event_type

0xffe51c23:primary(我的应用程序的原色)

0x7f0b008a:event_name

0x7f0b00d6:event_dates

0x7f0b00d7:event_location

另请注意,这是在 5.0 预览版上运行的。然而,当我使用 4.4.4 时,我仍然看到了这些日志。

EDIT #2

搜索Android源代码后,我发现“转换为字符串”唯一存在的地方是在类中android.content.res.TypedArray.

然而,我什至从未在我的项目中实例化、导入或以任何方式使用该类!这只会变得越来越奇怪。

EDIT #3

应评论者的要求,我上传了我的styles.xml and colors.xml要点,可以找到here https://gist.github.com/nwalters512/23f265e94935ffba67f4.


我向 Android 团队提交了错误报告,因为我仍然无法解释或修复这个问题。错误报告是here https://code.google.com/p/android/issues/detail?id=78322。评论者建议我取消选中“开发人员选项”中的“启用视图属性检查”。你瞧,这个问题现在已经解决了!我不记得曾经检查过这一点,这很奇怪,但至少我现在知道是什么导致了这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypedValue 转换为字符串 的相关文章

  • 找不到参数的方法 dependencyResolutionManagement()

    我正在尝试使用老师给我的一个项目 但它显示了一个错误 Settings file Users admin AndroidStudioProjects HTTPNetworking settings gradle line 1 A probl
  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL

随机推荐

  • 如何防止多个 Toast 重叠

    我一直在使用一个常见的 myToast 我使用 myToast cancel 在发出新的 toast 之前 对于 Android v2 3 及更早版本 这非常有效 当需要发送新的 Toast 时 如果旧的 Toast 仍在屏幕上 则会取消
  • SQL Server 2008 R2:从视图中包含的表中删除重复行

    创建表dup1 CREATE TABLE dup1 cola VARCHAR 10 colb VARCHAR 10 插入记录 INSERT INTO dup1 VALUES 1 2 INSERT INTO dup1 VALUES 1 2 I
  • Delphi XE2:禁用组件上的 vcl 样式

    我正在尝试按照有关禁用表单上控件上的颜色的示例进行操作 TStyleManager Engine RegisterStyleHook ClrMeans TwwDBComboDLG TEditStyleHook 但在注册或取消注册第 3 方控
  • C++ find 返回字符串变量 text 中的最后一个单词。字符串 getFirstWord(文本)

    我试图转到字符串的末尾 返回直到最后一个空格 然后前进直到单词的末尾并将该单词存储在空字符串中 不允许使用数组或指针 string getLastWord string text string lastword int last text
  • 检测重叠周期的算法[重复]

    这个问题在这里已经有答案了 我必须检测两个时间段是否重叠 每个期间都有开始日期和结束日期 我需要检测我的第一个时间段 A 是否与另一个时间段 B C 重叠 就我而言 如果 B 的开头等于 A 的结尾 则它们不重叠 反之亦然 我发现了以下案例
  • 对话框内的引导箱对话框

    我最近被分配到一个使用 bootbox 的项目 我当前的问题之一是在打开一个对话框后打开另一个对话框 问题是打开第二个对话框后背景阴影不会覆盖第一个对话框 有没有办法打开第二个对话框覆盖第一个对话框 EDIT function Confir
  • 有浮动工具提示的 Flot 示例吗?

    我目前正在研究一个Flot http code google com p flot 图形 即API http flot googlecode com svn trunk API txt尽管高级使用的示例没有得到广泛记录 但总体而言似乎非常强
  • 如何将图像放入 AlertDialog 中?安卓

    我不知道如何将图像放入 AlertDialog 中 我有这段代码 但我认为这是不可能的 AlertDialog Builder alert new AlertDialog Builder MessageDemo this ImageView
  • 为新用户授予默认权限或默认组

    默认行为似乎是新用户没有权限 也没有组 然而 我不想手动授予每个新用户基本权限 并且我假设他们不想等我这样做 我应该如何为新用户分配默认权限 已经提出了一些类似的问题 但对于一般情况没有明确的答案 Django默认用户权限 https st
  • @layout 引用的自定义 xml 属性

    我想用自己的 xml 属性创建一个自定义视图 我想指定一个标题布局 该布局将在我的自定义 xml 视图中膨胀 如下所示
  • plotly 3d 表面 - 将立方体更改为矩形空间

    我想要一个不在立方体中的 3D 图 因为我的 z 数据比 x 和 y 轴的比例小 10 倍 如何设置才能使 3D 绘图不是立方体 而是矩形 我希望 x y z 轴也具有相同的比例 也就是说 在此示例中 x 和 y 的范围是从 0 到 100
  • 如何以编程方式获取 aws ebs 定价?

    是否可以以编程方式下载 aws ebs 定价 我能够下载整个 AWS 服务索引文件 但没有看到列出的 Amazon EBS 我下载了 AmazonEC2 定价信息 它有 PricePerUnit 对于 EC2 实例来说意味着 但没有专门显示
  • pickle pandas DataFrame 的最快方法是什么?

    使用 Pandas 内置方法或pickle dump 标准的pickle方法如下所示 pickle dump my dataframe open test pickle p wb Pandas 内置方法如下所示 my dataframe t
  • 如何修改预构建的 Python 安装以在另一个目录中工作?

    对于预构建的自定义 Python 发行版的项目 我需要能够使用以下命令从源代码编译包pip 在已安装的环境中 最终产品的两次安装的文件系统结构可能如下所示 opt my program v1 some files custom python
  • Perl 程序用空格替换制表符

    我想编写一个 Perl 单行代码 用空格替换当前目录中一批文本文件中的所有制表符 t 而不影响可见间距 谁能告诉我如何做到这一点 这是在FAQ http perldoc perl org perlfaq4 html How do I exp
  • 是否可以创建动态嵌入功能?

    是否可以在ActionScript3中创建动态嵌入功能 例如像这样 public function embedImage path String Bitmap Embed source path mimeType image png var
  • .NET 相当于旧的 vb left(string, length) 函数

    作为一名非 NET 程序员 我正在寻找旧 Visual Basic 函数的 NET 等效项left string length 它很懒 因为它适用于任何长度的字符串 正如预期的那样 left foobar 3 foo 同时 最有帮助的是 l
  • 创建一个大的位域?

    我想在 JavaScript 中创建一个大的位字段 它将有效地表示多维标记数组 使用索引跳转到物理 1D 结构中的各个维度 我正在考虑如何将字符串用作位 而不是一堆数字 这样我就可以首先分配适当长度的字符串 数据类型 Unicode 和转换
  • 在地图上显示用户位置 SwiftUI

    我正在尝试加载地图并在用户位置上显示初始位置 并使用 SwiftUI 在地图上显示用户的位置 我不知道如何在 SwiftUI 中做到这一点 我尝试将 view showsUserLocation true 放入 updateUIView 函
  • TypedValue 转换为字符串

    当我使用 Android 应用程序时 LogCat 中随机出现了数十次重复的以下 5 行内容 10 26 12 53 30 372 21270 21270 W Resources Converting to string TypedValu