Невозможно выполнить WorkManager из введенного кода Xposed - PullRequest
1 голос
/ 21 мая 2019

У меня есть пара классов, которые загружаются и выполняются в сторонних приложениях с использованием Xposed перехватчиков.

Один из методов занимает много ресурсов и приводит к сбою приложения, в котором он работает. Я понял, что запустил бы его, используя WorkManager , поэтому загрузка будет автоматически обрабатываться системой.

Введенные классы не являются частью обычного приложения для Android (Манифест не имеет тега приложения, и даже если бы он был, он не работал бы как обычное приложение). Скорее классы компилируются и загружаются внутри стороннего приложения, а затем выполняются непосредственно внутри.

Поскольку WorkManager использует Приложение для создания экземпляра, я понял, что, возможно, я мог бы просто создать экземпляр вручную.

Итак, где-то в коде я позвонил:

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 голосов
/ 22 мая 2019

WorkManager ищет ресурсы, чтобы определить, нужно ли включать / отключать Scheduler на основе уровня API. Вот актуальный файл в вопросе (https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/work/workmanager/src/main/res/values/values.xml).

Я не знаю, почему эти ресурсы не объединяются правильно.

...