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"/>
所以我一直在浏览数以千计的 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"/>