Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android构建错误:类型不兼容:对象无法转换为ResolveInfo

Android构建错误:类型不兼容:对象无法转换为ResolveInfo
EN

Stack Overflow用户
提问于 2019-01-02 20:08:20
回答 1查看 417关注 0票数 0

我是Android开发的新手,正在尝试在基于https://android-developers.googleblog.com/2015/10/in-app-translations-in-android.html的全局剪切/复制/粘贴上下文菜单中添加菜单项。我知道getSupportedActivities()返回了一个无法与ResolveInfo兼容的对象,但是我不确定要采取什么措施来纠正这个问题。

我的AndroidManifest.xml中包含以下内容

代码语言:javascript
运行
AI代码解释
复制
<activity
    android:name=".ProcessTextActivity"
    android:label="@string/process_text">
    <intent-filter>
      <action android:name="android.intent.action.PROCESS_TEXT" />
      <category android:name="android.intent.category.DEFAULT" />
      <data android:mimeType="text/plain" />
    </intent-filter>
</activity>

这是在ProcessTextActivity.java

代码语言:javascript
运行
AI代码解释
复制
package com.my-app;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

import java.util.List;

public class ProcessTextActivity extends Activity {
    TextView mTextView;

    private Intent createProcessTextIntent() {
        return new Intent()
                .setAction(Intent.ACTION_PROCESS_TEXT)
                .setType("text/plain");
    }

    private List getSupportedActivities() {
        PackageManager packageManager =
                mTextView.getContext().getPackageManager();
        return packageManager.queryIntentActivities(createProcessTextIntent(), 0);
    }

    public void onInitializeMenu(Menu menu) {
        // Start with a menu Item order value that is high enough
        // so that your "PROCESS_TEXT" menu items appear after the
        // standard selection menu items like Cut, Copy, Paste.
        int menuItemOrder = 100;
        for (ResolveInfo resolveInfo : getSupportedActivities()) {
            menu.add(
                    Menu.NONE,
                    Menu.NONE,
                    menuItemOrder++,
                    getLabel(resolveInfo))
                    .setIntent(createProcessTextIntentForResolveInfo(resolveInfo))
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        }
    }

    private Intent createProcessTextIntentForResolveInfo(ResolveInfo info) {
        return createProcessTextIntent()
                .putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, !
                        mTextView.onCheckIsTextEditor())
                .setClassName(info.activityInfo.packageName,
                        info.activityInfo.name);
    }
}

当我尝试构建时,我得到了以下错误:

代码语言:javascript
运行
AI代码解释
复制
ProcessTextActivity.java:33: error: incompatible types: Object cannot be converted to ResolveInfo
    for (ResolveInfo resolveInfo : getSupportedActivities()) {
                                                         ^
ProcessTextActivity.java:38: error: cannot find symbol
                getLabel(resolveInfo))
                ^

  symbol:   method getLabel(ResolveInfo)
  location: class ProcessTextActivity
  2 errors
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-02 20:36:25

看起来packageManager.queryIntentActivities(createProcessTextIntent(), 0)返回了List<ResolveInfo> (我在android studio中查看了反编译的PackageManager类),这意味着你可以使用:

代码语言:javascript
运行
AI代码解释
复制
 private List<ResolveInfo> getSupportedActivities() {
        PackageManager packageManager =
                mTextView.getContext().getPackageManager();
        return packageManager.queryIntentActivities(createProcessTextIntent(), 0);
    }

通过使用上面的代码,您将不再得到错误,希望这会有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54012521

复制
相关文章
C-指针类型不兼容
不同类型的指针不可以赋值。否则赋值后,编译可以通过,但是执行后数据会变量错误数据。
潇洒
2023/10/20
1420
outputstream转byte数组_int类型转换为byte类型
Java中将inputstream输入流转换成byte[]字节数组
全栈程序员站长
2022/11/08
7.9K0
java对象类型转换_cdr轮廓转换为对象
要将 Java 对象或 POJO (普通旧 Java 对象)转换为 JSON,我们可以使用JSONObject将对象作为参数的构造函数之一。在下面的示例中,我们将StudentPOJO 转换为 JSON 字符串。Student类必须提供 getter 方法,JSONObject通过调用这些方法创建 JSON 字符串。
全栈程序员站长
2022/10/02
9430
【类型挑战】元组转换为对象,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 认识什么是as const,有什么作用; 如何得到数组类型中的元素类型; Typeof 类型运算符的到被引用变量或属性的类型; 题目分析: 题目地址:11-easy-tuple-to-object 如上图所示我们需要设计的类型工具需要满足将一个数组转为由其元素组成的key和value看着相同的对象类型。题目解答: 测试用例: 测试用例还是挺简单的比较经过我们设计的类型工具处理后的
前端小鑫同学
2022/12/26
6480
【类型挑战】元组转换为对象,难度⭐️
java: 不兼容的类型: 推断类型不符合上限
网上的错误引导是修改Intellij IDEA的java compile方式,由javac改为Eclipse,这样是不会报这个错误了,但是会引发新的错误,新错误是不能识别lombok的@slf4j注解的log对象。
在下是首席架构师
2022/07/08
4.2K0
MFC编程时出现错误: "char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容 解决办法
MFC编程时出现错误:  "char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容  的原因是因为编辑器默认编码是Unicode字符集,因此只需要在 项目 - 属性 - 常规 中把字符集修改为“未设置”即可。
acoolgiser
2019/03/08
2.4K0
MFC编程时出现错误:  "char *" 类型的实参与 "LPCTSTR" 类型的形参不兼容  解决办法
Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:
大江小浪
2018/07/24
2.4K0
Jenkins 无法捕获构建脚本错误问题
编写构建脚本执行,发现脚本执行出错,不会中断构建过程,导致最后展现的构建结果是错误的。
晓晨
2018/08/02
1.9K0
Jenkins 无法捕获构建脚本错误问题
integer转string java_Integer转换为String类型[通俗易懂]
Exception in thread “main” java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
全栈程序员站长
2022/11/01
2.1K0
Android P 应用兼容常见错误及建议
从 2018 年 3 月初我们发布 Android P 开发者预览版以来,很多开发者都对当前常见应用在 Android P 上做了一些兼容性测试,我们在这里总结了一些常见的问题,以及它们发生的原因和建议的修改措施。 问题 1: 假设 android.os.Build.VERSION.RELEASE 为数值类型 原因: 对于即将推出的 Android 新版本的预览版,这些值可能是字母数字 (如 “PPR” 或 “P”),因此在尝试将 “P” 解析为整数时会导致崩溃。 建议: 应用把 RELEASE 的值作为
Android 开发者
2018/05/31
8.6K0
Android ImageProxy 转 OpenCV Mat对象
通过CameraX的Analyzer方法得到的图片对象是ImageProxy对象,而OpenCV的处理对象必须是Mat。
zinyan.com
2023/07/14
1.2K6
Android  ImageProxy 转 OpenCV Mat对象
java把string转int类型_java把String类型转换为int类型的方法
这篇文章将为大家详细讲解有关java把String类型转换为int类型的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
全栈程序员站长
2022/11/10
4.3K0
java把string转int类型_java把String类型转换为int类型的方法
Vue3和@types/node的类型不兼容问题
最近有个新项目启动,主体内容与先前做的一个项目相似度很高,于是我准备拿这个旧项目作为模板简单改改,就可以启动新项目的开发了。
程序员白彬
2022/11/23
2.2K0
Vue3和@types/node的类型不兼容问题
java对象转换为json字符串_复杂json字符串转对象
在学习如何编写基于Java的软件时,开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。虽然您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了完成工作所需的一切。
全栈程序员站长
2022/09/30
9.1K0
java对象转换为json字符串_复杂json字符串转对象
java字符串类型转换为int_java中double转int类型
由于double的范围比int数据类型大,所以当int值被赋给double时,java会自动将int值转换为double。
全栈程序员站长
2022/08/03
4.3K0
xlsx转格式为csv时,编码格式不兼容导致打不开。
1、按<Ctrl+H>键 2、点击[查找内容] 3、点击[替换为] 4、点击[全部替换] 5、点击[另存为] 6、点击[编码] 7、点击[UTF-8] 8、点击[保存] 9、点击[文件名] 10、点击[保存类型] 11、点击[所有文件] 12、点击[保存]
裴来凡
2022/05/28
2.4K0
xlsx转格式为csv时,编码格式不兼容导致打不开。
将字符串转换为date类型_java字符串转date类型
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
14.5K0
python中字符串类型转换为数字类型_python字符串转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
5.6K0
python安装依赖包经常出错怎么办_python不兼容无法安装
原来编码是None,程序肯定是采用默认的GBK,所以这里我改一下他的默认编码为:UTF-8
全栈程序员站长
2022/11/11
1.5K0
python安装依赖包经常出错怎么办_python不兼容无法安装
【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )
在 Android 11 之后 , 不能使用 File 进行文件操作 , 需要使用 MediaStore 进行文件操作 ,
韩曙亮
2023/03/29
1.9K0
【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )

相似问题

错误:类型不兼容:无法将CAP#1转换为int[] (Java、Android Studio)

1166

错误:不兼容类型:无法将对象转换为树

34

错误:不兼容类型:无法将对象转换为字符

13

错误:不兼容类型:无法将对象转换为MyClass

32

不兼容类型:无法将对象转换为Diff<?>

419
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文