Flutter Android 警报管理器:缺少实现

Flutter Android Alarm Manager: missing implementation

所以我一直在浏览数以千计的 Whosebug 问题并阅读 flutter 的 android_alarm_manager 插件的文档。最终,我无法让它工作。当我尝试在我的代码中使用插件时,它会抛出 "Implementation not found/Missing implementation" 错误。我尝试了在 Internet 上找到的所有内容,但无法正常工作。

这是我的 MainActivity.kt:

package novy.vip.novynaplo
import android.os.Bundle
import io.flutter.app.FlutterActivity
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    GeneratedPluginRegistrant.registerWith(this)
  }
}

这里是警报管理器调用的我的飞镖代码:

void backgroundFetch() async {
  final SharedPreferences prefs = await SharedPreferences.getInstance();
  print(prefs.getString("someStringIneed"));
}

经过大约一周的阅读,我找到了解决问题的方法:

解决方案

看来我的 kotlin 代码已被弃用,它没有像它应该注册的那样注册我的插件,所以我将其更改为:

package novy.vip.novynaplo

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {
  override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
  }
}

对于大多数本来可以解决问题的人来说,但我还必须将此代码段添加到我的 AndroidManifest.xml(在 <activity></activity> 中):

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