无法从Xposed注入代码执行WorkManager

时间:2019-05-21 08:06:02

标签: android android-workmanager xposed

我有一些使用 Xposed 挂钩在第三方应用程序中加载和执行的类。

其中一种方法占用大量资源,并使运行它的App崩溃。我发现我可以使用 WorkManager 运行它,这样系统将自动处理负载。

注入的类不是普通Android应用程序的一部分(清单没有应用程序标签,即使包含,也不会作为普通应用程序运行)。而是将类编译并加载到第三方应用程序中,然后直接在内部执行。

由于 WorkManager 依靠 Application 创建实例,所以我发现也许可以手动创建该实例。

所以在我调用的代码中的某处:

WorkManager.initialize(context, new Configuration.Builder().build());

然后在我的方法中,我使用了类似的内容:

WorkManager mWorkManager = WorkManager.getInstance();
mWorkManager.enqueue(OneTimeWorkRequest.from(MyWorker.class));

但是在初始化过程中出现以下错误:

Resources$NotFoundException: Resource ID #0x7f020002 type #0x3 is not valid

我不确定 WorkManager 在寻找什么资源,正如我之前提到的,我只有几个班级,没有 res 文件夹

我愿意接受其他建议来替换 WorkManager

1 个答案:

答案 0 :(得分:0)

WorkManager确实会寻找资源来确定是否需要基于API级别启用/禁用Scheduler。这是有问题的实际文件(https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/work/workmanager/src/main/res/values/values.xml)。

我不知道为什么这些资源没有正确合并。