原生Android前台定位服务崩溃Flutter应用程序

3
我希望在应用程序最小化时后台获取位置更新。因此,我创建了一个Flutter演示应用程序,其中包含本机Android中的服务,我可以在前台运行以获取应用程序的连续位置更新,并且它像我的期望一样正常工作,它会在通知中更新位置(用于测试)。
然后,我尝试使用与演示应用程序中相同的服务在实际Flutter应用程序中实现相同的服务,但是我的应用程序在启动时崩溃,因此我无法调试,此外,我在构建过程中没有收到任何错误提示。
我的主要Flutter应用程序没有位置服务实现问题,因此唯一的问题是在实现后导致崩溃。
这个问题的原因和解决方案是什么,或者我如何找出问题所在?
我在原始Flutter应用程序中执行与演示应用程序中的Dart代码相同的操作。我该如何研究这个问题?

我已经删除了你的附加问题 - Stack Overflow对于帖子中只有一个问题是非常严格的。我怀疑现在的问题仍然相当广泛,因为其中包含了大量的代码。你能将其放入版本控制,并删除一些代码以便创建一个更小的示例吗?这样不仅可以增加你获得所需帮助的可能性,而且也许你可以通过缩小范围到特定行来找到错误的原因。 - undefined
应用程序已经构建并安装在设备上,但在尝试在设备上启动应用程序时崩溃,没有任何错误日志和堆栈跟踪。因此,我无法找到或调试它,所以我想添加我的整个代码,这将有助于查看为什么会崩溃。是的,我将把我的演示代码上传到GitHub,并提供项目的链接。谢谢。 - undefined
这仍然太宽泛了,我想读者们可能不太愿意在他们的开发环境中尝试运行那段代码。如果将代码缩小规模,你能否实现相同的崩溃效果? - undefined
请问有人能帮我解决这个问题吗? https://stackoverflow.com/questions/64785847/scan-and-listen-to-events-from-bluetooth-devices-in-background-with-flutter - undefined
1个回答

0

关于上述问题,我在这里添加了我的答案。

在我的情况下,并不是一个前台服务导致应用程序崩溃,而是问题出在Flutter作为一个不断发展的框架上。我们会得到很多更新和变化。在其中一个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端代码,并通过调试该代码找出问题并修复。谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接