Android 广播接收器错误:未找到类异常

2023-11-24

我有一个广播接收器设置,以便在每次升级我的应用程序后,或者如果这是第一次安装软件包时,都会向用户显示一条弹出消息。我在运行 Android 2.2 的 Droid 上进行了测试,无论是全新安装还是升级应用程序后,以及运行 1.5 和 1.6 的模拟器中,我发现一切运行良好。

但是,我收到了用户的错误报告,其中列出了以下异常:

java.lang.RuntimeException: Unable to instantiate receiver 
com.name.pkg.FirstRunBroadcastReceiver: java.lang.ClassNotFoundException: com.name.pkg.app_name.FirstRunBroadcastReceiver in loader dalvik.system.PathClassLoader[/data/app/com.name.pkg.app_name.apk]
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789)
at android.app.ActivityThread.access$3200(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.name.pkg.app_name.FirstRunBroadcastReceiver in loader dalvik.system.PathClassLoader[/data/app/com.name.pkg.app_name.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2780)
... 10 more

有人可以告诉我为什么我的一位用户收到此异常吗?

在我的清单文件中,我的设置如下:

<receiver android:name=".FirstRunBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REPLACE"/>
        <data android:scheme="package" android:path="com.name.pkg.app_name">
    </intent-filter>
</receiver>

FirstRunBroadcastReceiver 类的设置如下:

package com.name.pkg.app_name;

public class FirstRunBroadcastReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Contenxt context, Intent intent)
    {
        Uri uri = intent.getData();
        if( uri.toString().compareTo("package:com.name.pkg.app_name") == 0 )
        {
            //set shared prefs data to determine if start-up message should be shown
        }
    }
}

首次安装时,会设置共享首选项的默认值,以便显示弹出消息,但我认为这与此异常没有任何关系。

我又测试了一遍,没有发现异常。感谢您的任何帮助,您可以提供。


来自接收器的“android:exported”属性的 android 文档:

广播接收器是否可以从其应用程序外部的源接收消息 - 如果可以,则为“true”,如果不能,则为“false”。如果为“假”,则广播接收器可以接收的唯一消息是由同一应用程序或具有相同用户 ID 的应用程序的组件发送的消息。 默认值取决于广播接收器是否包含意图过滤器。没有任何过滤器意味着它只能由指定其确切类名的 Intent 对象调用。这意味着接收器仅供应用程序内部使用(因为其他人通常不知道类名)。所以在这种情况下,默认值为“false”。另一方面,至少一个过滤器的存在意味着广播接收器旨在接收系统或其他应用程序广播的意图,因此默认值为“true”

由于您的接收者有子意图,因此默认值为android:exported是真的。只要明确说明这一点,它就应该可以正常工作。

ie,

<receiver android:name=".FirstRunBroadcastReceiver" android:exported="true">
<intent-filter>
    <action android:name="android.intent.action.PACKAGE_REPLACE"/>
    <data android:scheme="package" android:path="com.name.pkg.app_name">
</intent-filter>

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

Android 广播接收器错误:未找到类异常 的相关文章

  • FireStore 日期查询未按预期工作

    我有一个有日期对象的文档 初始化 Firestore 的代码 FirebaseFirestore fireStore FirebaseFirestore getInstance FirebaseFirestoreSettings setti
  • 可序列化对象的 ArrayList 的加密保存和解密加载

    我在 SD 卡中保存并加载一个文件 其中包含ArrayList使用这两种方法的可序列化对象 保存方法 public static void saveUserList ArrayList
  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以
  • 如何在 ImageButton 上显示文本?

    我有一个ImageButton我想在上面显示文本和图像 但是当我尝试使用模拟器时
  • 如何创建轮播ViewPager?

    我想做的只是 Android 中的水平轮播 如果我有 3 个屏幕 A B 和 C 那么我希望我的 ViewPager 允许我像这样移动 A B B C C A GTalk for Android 的对话可以这样切换 三星的主屏幕和应用程序屏
  • 将 MapView 限制为屏幕的一半

    我试图让地图仅填充屏幕的上半部分 并在下半部分填充一些其他布局 现在我知道使用权重与表格布局相结合应该可以实现这一点 但是同一段 XML 代码可以完美地与 say 按钮配合使用 但不能与地图配合使用 截图在这里 https i stack
  • Android studio 3.0不生成签名的apk

    将 android studio 更新到版本 3 0 Windows 后 我无法生成签名的 APK 构建完成后 我收到消息 单击 查找 会将我带到 APP 文件夹 但找不到 APK 改变了什么 自Android Studio 3 0更新后
  • 关于pl/sql异常的问题

    以下文字摘录自oracle文档Oracle Database PL SQL 语言参考 11g 第 1 版 11 1 未处理的异常也会影响 子程序 如果退出子程序 成功后 PL SQL 将值分配给 输出参数 但是 如果您退出 带有未处理的异常
  • 底部导航视图 - 渐变图标色调

    I have changed icon tint in BottomNavigationView using selector and gradient color as tint when icon is pressed but inst
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • 使用协程对任务进行排队

    我最近开始阅读有关协程的内容 我想询问某个场景 考虑一个带有一个按钮的简单屏幕 单击后 它会执行一堆打印语句和一些延迟 其间 到目前为止 我正在使用协程来实现这一目标 现在 我的问题是 如果用户反复向该按钮发送垃圾邮件 是否有一种方法可以将
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 依赖于多个模块的 Gradle Android 单元测试

    我正在开发一个具有多个模块的项目 我们正在为应用程序编写 junit 测试用例 并且我们正在使用以下异常 开始试运行 java lang RuntimeException java lang ClassNotFoundException 下
  • AndroidPlot:从 1 到 11 的域标签

    我已经在我的应用程序中实现了 AndroidPlot 除了 X 轴标签 从 0 到 10 之外 它工作得很好 我想显示 1 到 11 此外 Y 轴上的标签不会出现 我正在使用的代码 import java text DecimalForma
  • Android 上的 Facebook 社交插件

    我想集成 Facebook 的评论社交插件 https developers facebook com docs reference plugins comments https developers facebook com docs r
  • Corebluetooth 方法 scanForPeripheralsWithServices 在任何设备中都不适用于我。所有 github 示例均不适用于我的设备 ipod touch

    我正在开发蓝牙相关的应用程序 但我没有取得任何成功 在我的应用程序中 我想将我的 iDevice 与任何其他正在扫描的蓝牙设备连接 但使用 CBCentralManager 方法 scanForPeripheralsWithServices
  • 将 Spritekit 游戏转换为 Android?

    是否有任何新选项可以将 spritekit 游戏转换为 Android 游戏 似乎唯一的选择是用 Java 重新编码所有内容或使用 Cocos2D LibGDX 等 很不幸的是 不行 而且带有 Apportable 服务的跨平台 Sprit
  • 使用 Ant 构建 Android 库项目

    我在使用 ant 构建 Android 库项目时遇到问题 当我尝试跑步时ant release 它说Target release does not exist in the project MyProject 然后我假设库可能无法通过发布
  • 如何在Android手机上而不是模拟器上运行或调试?

    Android 模拟器速度太慢 无法测试运行的应用程序 有没有办法使用 IDE 而不是模拟器在真实手机上调试 运行应用程序 通常 您可以在手机上打开 USB 调试 然后通过 USB 将其连接到 PC 然后 手机将以与模拟器相同的方式出现在
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi

随机推荐

  • 从 IntPtr(16 位)数组复制到托管 ushort

    我有一个IntPtr称为rawbits 它指向一个10MB的数据数组 16位值 我需要返回一个托管的ushort数组由此而来 下面的代码可以工作 但有一个额外的BlockCopy我想摆脱 Marshal Copy不支持ushort 我能做些
  • 使用矩阵中的行索引和列索引从矩阵中提取值

    我有一个矩阵 A 看起来像 A matrix 1 9 3 3 A 1 2 3 1 1 4 7 2 2 5 8 3 3 6 9 以及我感兴趣的元素索引矩阵 第 1 列包含行索引 第 2 列包含列索引 v matrix c 1 3 2 2 2
  • 如何在java程序中使用mkdir和rmdir命令

    我想使用系统命令 例如mkdir and rmdir运行java程序时 我怎样才能做到这一点 为什么要使用命令行 仅供参考 有内置的独立于平台的File类 http www exampledepot com egs java io dele
  • 以固定速率安排 Callable

    我有一个任务想要以固定速率运行 但是我还需要每次执行后任务的结果 这是我尝试过的 The task class ScheduledWork implements Callable
  • RoutedCommands 已执行和预览执行事件

    我的问题是我想在多个地方处理命令 例如 我有自定义用户控件 其中按钮绑定到某个命令 我在该控件中有一个命令绑定 但在使用该控件的窗口中也有一个命令绑定 我的目标是在控件内执行某些操作 同时不中断窗口中命令的处理 我尝试尝试执行和预览执行事件
  • 将列表元素向右移动并将列表元素从末尾移动到开头

    我想旋转列表中的元素 例如 将列表元素向右移动 a b c d 会成为 d a b c or 1 2 3 变成 3 1 2 我尝试了以下方法 但它不起作用 def shift aList n len aList for i in range
  • cpu使用率最高的进程名称

    我有一个Samurize配置显示类似于任务管理器的 CPU 使用率图表 如何同时显示当前CPU使用率最高的进程名称 我希望最多每秒更新一次 Samurize 可以调用命令行工具并将其输出显示在屏幕上 因此这也可以是一个选项 进一步澄清 我已
  • 仅在粘贴时限制输入数字

    我有一个名为restrict numbers 的类 我想将输入的字符限制为仅接受数字 我使用了以下代码 这很好 但问题是我想在输入中粘贴时进行相同的限制在不完全禁用粘贴的情况下提交 function input only numbers i
  • git status 返回“致命:不是 git 存储库”但 .git 目录存在

    我有一个当前无法推送到的远程文件夹 当我直接进入远程目录并执行 git status 时 它会显示 致命 不是 git 存储库 git 文件夹确实存在 并且昨天工作正常 此后没有任何变化 谁能告诉我即使 git 文件夹存在也可能收到此消息的
  • 如何从 Java 与 ADFS 通信? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我们有一个在 Caucho Resin 上运行的网站 它主要是使用 JSP 用 Ja va 编写的 我们在网站上有自己的自定义身份验证 我们没有使用任何第三方身份验证框架 我们现
  • PHP 反射类。如何获取属性的值?

    我在 PHP 中使用反射类 但我不知道如何获取反射实例中的属性值 有可能的 代码 如何获取 foreach 循环内的属性值 此致 怎么样 ReflectionProperty getValue 获取属
  • VS Code:登录错误:您似乎处于离线状态。请检查您的网络连接

    在 VS Code 中 当我尝试运行以下命令进行登录时 我收到以下错误消息并且无法登录 由于在公司代理后面工作 我遇到了同样的问题 我可以通过在设置中写入http代理来解决这个问题 而不是将其留空并从环境变量继承
  • JQuery 数据表在输入中搜索并选择

    将 Jquery Datatables 与输入和选择一起使用 如下所示 http datatables net examples api form html或者 如果我使用自定义列呈现处理程序来生成输入并选择如何使全局表搜索工作 如果您查看
  • Ransack、Postgres - 对关联表中具有不同的列进行排序:true

    我有一个使用 Ransack gem 的应用程序 我正在将其从 Mysql 转换为 Postgres 在排序列来自关联表并且 unique 选项设置为 true 的情况下 Postgres 会抛出以下错误 PG InvalidColumnR
  • 如何在 jQuery 点击函数中存储局部变量?

    我试图弄清楚如何在 jQuery 的 click 事件期间创建的函数中存储外部变量值 这是我现在正在使用的代码示例 for var i 0 i lt 3 i tmpid i click function var gid i alert gi
  • 如何在自包含的 Angular 2 组件中包含字体

    我有一个需要自定义字体作为依赖项的组件 我希望该组件能够处理字体本身的导入 以便它是可移植的 另外 我们的项目正在使用 angular cli 所以我无论如何都无法控制 webpack config 我希望 Angular cli 足够智能
  • Azure 应用服务 - 写入文件系统 - ASP.NET Web 应用程序

    我有一个在 Visual Studio 2017 中创建的 ASP NET Web 应用程序 在应用程序中有一个表单 用户可以在其中上传文件 上传文件后 我会处理它们并将它们保存在文件系统上 var photo Request Files
  • Ruby 参数列表中的单个 splat/星号是什么意思? [复制]

    这个问题在这里已经有答案了 今天我翻阅Rails 3 ActiveRecord源代码发现整个参数列表是单个星号的方法 def save 我找不到关于它的作用的良好描述 尽管我根据我对 splat 参数的了解有一些想法 它有什么作用 为什么要
  • 如何删除工作表中未清除的行?

    我不知道如何删除行而不留下空行 我正在使用 Apache POI 3 9 但使用以下代码时出现错误 public List
  • Android 广播接收器错误:未找到类异常

    我有一个广播接收器设置 以便在每次升级我的应用程序后 或者如果这是第一次安装软件包时 都会向用户显示一条弹出消息 我在运行 Android 2 2 的 Droid 上进行了测试 无论是全新安装还是升级应用程序后 以及运行 1 5 和 1 6