Closed algodave closed 4 years ago
What makes you think this has anything to do with BackgroundGeolocation?
@christocracy It occurs exactly on await BackgroundGeolocation.start()
Initiating the plugin is merely exposing a deeper problem in your app’s gradle Config, likely a problem related to androidx migration.
Post the Following files
@christocracy Here a zip with the requested config files fbg-246-android-config-files.zip
pubspec.yaml
CinderblockApplication.java
MainActivity.java
@christocracy Here fbg-246-req-files-2.zip
For your flutter_downloader
plugin, see here
From Flutter v1.12 with Android v2 embedding there's no additional configurations required to work with background isolation in Android
You no longer need this in CinderblockApplication.java
:
@Override
public void registerWith(PluginRegistry registry) {
if (registry.hasPlugin(FLUTTER_DOWNLOADER_REGISTRAR_NAME)) {
FlutterDownloaderPlugin.registerWith(registry.registrarFor(FLUTTER_DOWNLOADER_REGISTRAR_NAME));
}
}
Thank you for your support @christocracy - I'm currently handling just that; will get back to you soon.
and flutter_downloader
released 1.4.4
5 days ago with Fixing AndroidX issues
In your android/app/build.gradle
, try enabling "multidex"
android {
defaultConfig {
...
+ multiDexEnabled true
}
...
}
You have 4 dependencies install from git
, one of which does not include ref
tag, so will install latest from master
whenever you pub get
, potentially introducing unwanted changes.
flutter_rest_data:
git:
url: git://github.com/algonauti/flutter-rest-data.git
Thank you for all your suggestions @christocracy
I'm the author of flutter_rest_data
so I have full control over it 😉
I just fixed/updated the configs related to flutter_downloader
thanks for spotting those 👍
Unfortunately I'm still getting the same exceptions on BackgroundGeolocation.start()
@christocracy Here's how my config files look like now: fbg-246-files-3.zip
I removed both CinderblockApplication
and MainActivity
java classes and updated AndroidManifest
accordingly. I also upgraded flutter_downloader to 1.4.4 as per your good suggestion.
I forgot to mention that the problem is not just the exceptions. Most importantly, location tracking is not working, it stops after way less than 1 second from start()
(and it may be due to those exceptions)
You cannot expect your app to work with those exceptions.
Did you do this?
@christocracy Just enabled multiDex
, no luck
$ cd android
$ ./gradlew clean
$ ./gradlew assembleDebug
Build succeeded
Unfortunately, exceptions on BackgroundGeolocation.start()
are still there.
Remove this "Camera
" plugin. Disable its references within your dart
code and boot again.
Clearly there's something going on with this Camera
plugin.
@christocracy I removed adv_camera
and all of its usages, run flutter clean
and run the app again on Nexus 5X. The same exceptions are still there. Please note: I have the same issue on emulators running Android 8.0, whereas I don't have any exception on emulators running Android 9.0 and 10.0
I'm not sure that looking at other packages is the right track.
I'm not sure that looking at other packages is the right track.
Yes it is. Build your self a fresh new hello world app with flutter create foo
, and set up the plugin. It will work.
I regularly test the plugin on the following Android devices:
@christocracy I'm not blaming anyone here, I'm just trying to suggest a way to get to the solution. As an opposite approach, I can report that I've never seen such exceptions on Nexus 5X device before installing flutter_background_geolocation
. I also have integration tests that walk through almost all of my app's features.
I'm not blaming anyone here
I want you to be aware that I regularly test the /example app on a wide range of device models and OS versions.
Have you googled this error?
@christocracy I just run the example app from the latest master branch (cf0ccd53a1615f5479d75bb6f09d209e5b23eb29) on device Nexus 5X running Android 8.1.0 and I get the same exceptions reported in the issue description.
Here are the steps I followed.
flutter clean
, then run the example appAlgonauti
as the org. name and algodave
as the user name. Tap Register@christocracy Just for the record: mentioned exceptions are still there, but I managed to get geolocation tracking working on the Nexus 5X running Android 8.1.0 by calling changePace()
. Here's the logic of my app's "start tracking" feature:
State currentState = await BackgroundGeolocation.start();
if (Platform.isAndroid) {
currentState.isMoving = await BackgroundGeolocation.changePace(true);
}
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You may also mark this issue as a "discussion" and I will leave this open.
Closing this issue after a prolonged period of inactivity. Fell free to reopen this issue, if this still affecting you.
Your Environment
flutter doctor
):Plugin config:
Expected Behavior
No exceptions.
Actual Behavior
Exceptions.
Steps to Reproduce
Run
await BackgroundGeolocation.start()
afterBackgroundGeolocation.ready()
is completed with the aboveConfig()
object.Context
Start location tracking
Debug logs
Logs
``` I/TSLocationManager(25283): - Enable: false → true, trackingMode: 1 I/zygote64(25283): Rejecting re-init on previously-failed class java.lang.Class