当应用最小化时,我想在后台获取位置更新。因此,我在本地Android中创建了一个带有服务的演示Flutter应用程序,可以在前台运行该应用程序以获取应用程序的连续位置更新,并且按我的期望,它正在更新通知中的位置(用于测试),效果很好。
然后,我尝试使用清单文件中提到的与演示应用程序相同的实际服务来实现与实际Flutter应用程序的相同服务,但是我的应用程序在启动时崩溃,因此我无法调试,此外我没有得到任何错误在建筑中。
我的主要Flutter应用程序在没有位置服务实现的情况下仍能正常运行,因此只有问题在实现后会导致崩溃。
该问题可能是什么问题和解决方案,或者我怎么找出问题所在?
我在原始Flutter应用程序中做的事情与演示应用程序的此dart代码相同。我该如何调查这个问题?
答案 0 :(得分:0)
我正在添加有关上述问题的答案。
在我的案例中,不是崩溃的前台服务,而是问题在于,随着框架的发展,我们得到了大量的更新和变更。通过其中一种Flutter更新,Flutter在本机端更新了应用程序的插件注册过程,因此某些具有较旧版本依赖性的插件不再向应用程序注册,因为flutter不再支持FlutterView(不建议使用)。
Note: Always make sure your plugin dependencies are updated to latest version of its dependencies in pubspec.yaml.
对我来说,我为前台创建的主应用程序和演示应用程序可以按照我的期望运行,但是当我将它们合并时,由于相机插件依赖版本太旧而崩溃了。您可以做的第二件事是,这也可以减少由于androidx兼容性而导致的错误机会。不过,在旧应用中也不太困难。
Note : Create new flutter project and move your all dart code to new application.
Please be careful while doing this option.
-- Don't forget to add permissions in manifest files which you are accessing in app.
-- Don't forget to add assets and resources used on native side if you have added or changed.
-- Don't forget to set version according to version of old app.
-- Don't forget to make changes in your gradle files if any of app dependencies use that configurations like minimum sdk, targetSdk, etc... (if it applies in your case)
如果您觉得这没用,可以在android studio中运行android辅助代码,并通过调试该代码并修复来找出问题所在。谢谢