Android Work Manager: «Не мог создать экземпляр работника»Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Work Manager: «Не мог создать экземпляр работника»

Сообщение Anonymous »

Я следил за учебником разработчика Android по использованию структуры Worker Manager для запуска моего кода в фоновом режиме, но в любое время я пытаюсь включить своего работника, он не работает, и я получаю следующую ошибку: < /p>

2018-10-04 22:25:47.004 28669-28885/app.package.com.debug E/DefaultWorkerFactory: Could not instantiate app.package.com.MyWorker
java.lang.NoSuchMethodException: []
at java.lang.Class.getConstructor0(Class.java:2320)
at java.lang.Class.getDeclaredConstructor(Class.java:2166)
at androidx.work.DefaultWorkerFactory.createWorker(DefaultWorkerFactory.java:58)
at androidx.work.impl.WorkerWrapper.runWorker(WorkerWrapper.java:180)
at androidx.work.impl.WorkerWrapper.run(WorkerWrapper.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
2018-10-04 22:25:47.005 28669-28885/app.package.com.debug E/WorkerWrapper: Could for create Worker app.package.com.MyWorker
< /code>

Я видел, что эта проблема может быть связана с конструктором по умолчанию на работнике, но я уже использую правильную вместо устаревшей функции по умолчанию. < /p>

Мой работник объявлен как: < /p>

public class MyWorker extends Worker {

public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}

@NonNull
@Override
public Result doWork() {
// Doesn't even get called
}
}
< /code>

и он сдается в очередь так: < /p>

WorkManager workManager = WorkManager.getInstance();
if (myWorkerRequest == null) {
myWorkerRequest = new OneTimeWorkRequest.Builder(MyWorker.class)
.setConstraints(new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build())
.build();
}
WorkStatus workStatus = workManager.getStatusById(myWorkerRequest.getId()).getValue();
if (workStatus == null || !workStatus.getState().isFinished()) {
workManager.enqueue(myWorkerRequest);
}
< /code>

Я не вижу ничего отличного от примеров, поэтому я хотел бы понять, что еще может повлиять на мой код, чтобы вызвать этот сбой. Может ли это быть что-то связанное с прогиком? !

Подробнее здесь: https://stackoverflow.com/questions/526 ... ate-worker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»