【问题标题】:android - AndroidManifest referenced classes not validatedandroid - AndroidManifest 引用的类未验证
【发布时间】:2013-02-08 13:48:53
【问题描述】:

我最近为一个 Android 项目重构了我的包结构,并将 BroadcastReceiver 类移到了另一个包中。但是,我忘记在 AndroidManifest.xml 中更新receiver 标签的android:name 字段。

这个BroadcastReceiver 被用来向客户端发送通知,这个严重错误仅仅意味着没有发送通知。不幸的是,没有对该文件进行编译时验证,或者似乎抛出了任何运行时错误以指示此处的配置错误。

我能做些什么来验证这些类型的配置吗?也许这些信息可以在单元测试中访问并验证?或者,也许我可以配置更详细的输出以确保此类错误在未来不会被忽视?

【问题讨论】:

    标签: android unit-testing testing broadcastreceiver android-manifest


    【解决方案1】:

    或者,似乎任何运行时错误都表明此处配置错误

    LogCat 中可能会显示警告,但可能不会,因为广播的接收器为零是完全正常的情况。

    我能做些什么来验证这些类型的配置吗?

    您可以file a feature request 让 Lint 验证清单的这一部分。或者,您可以编写自己的脚本来分析您的源代码树和清单,并将其作为自定义 Ant 构建脚本的一部分。

    也许可以在单元测试中访问并验证此信息?

    您可以使用PackageManager and queryBroadcastReceivers() 来确认您用于广播的Intent 将解析为1+ 个接收者。

    【讨论】:

    • 验证 PackageManager 的单元测试看起来像一张票。可惜没有更标准化的了。当我有工作时,我会发布我的单元测试。干杯。
    猜你喜欢
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多