fluttercommunity / flutter_workmanager

A Flutter plugin which allows you to execute code in the background on Android and iOS.
851 stars 260 forks source link

[Android] not able to initialized WorkManager #492

Closed avatarnguyen closed 1 year ago

avatarnguyen commented 1 year ago

Version

Technology Version
Workmanager version 0.5.1
Xcode version 14.3.1.
Swift version
iOS deployment target 14

Describe the error I used the code from the package example to try on my own project and also followed the Android_setup.md guide. But every time I got the error below when registering a task.

Any idea what the issue could be?

Here is the exact code I am using.

Workmanager().registerOneOffTask(
         simpleTaskKey,
          simpleTaskKey,
          inputData: <String, dynamic>{
                  'key': Random().nextInt(64000),
           },
    );

Error Message when register Task

I/flutter (22986): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (22986): │ #0   StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:652:7)
I/flutter (22986): │ #1   MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:310:18)
I/flutter (22986): │ #2   <asynchronous suspension>
I/flutter (22986): │ #3   Workmanager.registerOneOffTask (package:workmanager/src/workmanager.dart:192:7)
I/flutter (22986): │ #4   <asynchronous suspension>
I/flutter (22986): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (22986): │ ⛔ PlatformException(error, WorkManager is not initialized properly.  You have explicitly disabled WorkManagerInitializer in your manifest, have not manually called WorkManager#initialize at this point, and your Application does not implement Configuration.Provider., null, java.lang.IllegalStateException: WorkManager is not initialized properly.  You have explicitly disabled WorkManagerInitializer in your manifest, have not manually called WorkManager#initialize at this point, and your Application does not implement Configuration.Provider.
I/flutter (22986): │ ⛔  at androidx.work.impl.WorkManagerImpl.getInstance(WorkManagerImpl.java:158)
I/flutter (22986): │ ⛔  at androidx.work.WorkManager.getInstance(WorkManager.java:184)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.WorkmanagerCallHandlerKt.workManager(WorkmanagerCallHandler.kt:19)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.WorkmanagerCallHandlerKt.access$workManager(WorkmanagerCallHandler.kt:1)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.WM.enqueueOneOffTask(WorkmanagerCallHandler.kt:212)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.RegisterTaskHandler.enqueueOneOffTask(WorkmanagerCallHandler.kt:126)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.RegisterTaskHandler.handle(WorkmanagerCallHandler.kt:93)
I/flutter (22986): │ ⛔  at be.tramckrijte.workmanager.WorkmanagerCallHandler.onMethodCall(WorkmanagerCallHandler.kt:34)
I/flutter (22986): │ ⛔  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
I/flutter (22986): │ ⛔  at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
I/flutter (22986): │ ⛔  at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
I/flutter (22986): │ ⛔  at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
I/flutter (22986): │ ⛔  at android.os.Handler.handleCallback(Handler.java:942)
I/flutter (22986): │ ⛔  at android.os.Handler.dispatchMessage(Handler.java:99)
I/flutter (22986): │ ⛔  at android.os.Looper.loopOnce(Looper.java:201)
I/flutter (22986): │ ⛔  at android.os.Looper.loop(Looper.java:288)
I/flutter (22986): │ ⛔  at android.app.ActivityThread.main(ActivityThread.java:7918)
I/flutter (22986): │ ⛔  at java.lang.reflect.Method.invoke(Native Method)
I/flutter (22986): │ ⛔  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
I/flutter (22986): │ ⛔  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
I/flutter (22986): │ ⛔ )
I/flutter (22986): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Android Manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com...">

    <queries>
        <package android:name="com.sec.android.app.shealth" />
    </queries>
    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
    <uses-permission android:name="android.permission.BODY_SENSORS"/>

    <application
        android:label="...."
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">

            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

Output of flutter doctor -v

• Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (13 days ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/anhnguyen/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/anhnguyen/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.80.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.68.0

[✓] Connected device (4 available)

[✓] Network resources
    • All expected network resources are available.
ened commented 1 year ago

Please see https://github.com/fluttercommunity/flutter_workmanager#how-to-use-the-package