我正在使用该audio_service
包以及flutter_background_geolocation
我的应用程序中的包。如其文档中所述,这两个软件包均针对 Android 进行了配置。单击我设备的后退按钮时,应用程序将关闭。现在,如果我恢复到应用程序的速度过快,它会崩溃并出现以下错误:
java.lang.RuntimeException: Unable to stop service com.ryanheise.audioservice.AudioService@e4814cd: java.lang.NullPointerException: Attempt to invoke virtual method 'io.flutter.plugin.common.PluginRegistry$RequestPermissionsResultListener com.lyokone.location.FlutterLocationService.getServiceRequestPermissionsResultListener()' on a null object reference
E/TSLocationManager( 9012): at android.app.ActivityThread.handleStopService(ActivityThread.java:4375)
E/TSLocationManager( 9012): at android.app.ActivityThread.access$1900(ActivityThread.java:237)
E/TSLocationManager( 9012): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1956)
E/TSLocationManager( 9012): at android.os.Handler.dispatchMessage(Handler.java:106)
E/TSLocationManager( 9012): at android.os.Looper.loop(Looper.java:223)
E/TSLocationManager( 9012): at android.app.ActivityThread.main(ActivityThread.java:7656)
E/TSLocationManager( 9012): at java.lang.reflect.Method.invoke(Native Method)
E/TSLocationManager( 9012): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/TSLocationManager( 9012): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
E/TSLocationManager( 9012): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'io.flutter.plugin.common.PluginRegistry$RequestPermissionsResultListener com.lyokone.location.FlutterLocationService.getServiceRequestPermissionsResultListener()' on a null object reference
E/TSLocationManager( 9012): at com.lyokone.location.LocationPlugin.dispose(LocationPlugin.java:117)
E/TSLocationManager( 9012): at com.lyokone.location.LocationPlugin.detachActivity(LocationPlugin.java:56)
E/TSLocationManager( 9012): at com.lyokone.location.LocationPlugin.onDetachedFromActivity(LocationPlugin.java:69)
E/TSLocationManager( 9012): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.detachFromActivity(FlutterEngineConnectionRegistry.java:392)
E/TSLocationManager( 9012): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.detachFromAppComponent(FlutterEngineConnectionRegistry.java:297)
E/TSLocationManager( 9012): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.destroy(FlutterEngineConnectionRegistry.java:118)
E/TSLocationManager( 9012): at io.flutter.embedding.engine.FlutterEngine.destroy(FlutterEngine.java:419)
E/TSLocationManager( 9012): at com.ryanheise.audioservice.AudioServicePlugin.disposeFlutterEngine(AudioServicePlugin.java:103)
E/TSLocationManager( 9012): at com.ryanheise.audioservice.AudioServicePlugin$AudioHandlerInterface.onDestroy(AudioServicePlugin.java:800)
E/TSLocationManager( 9012): at com.ryanheise.audioservice.AudioService.onDestroy(AudioService.java:301)
E/TSLocationManager( 9012): at android.app.ActivityThread.handleStopService(ActivityThread.java:4355)
E/TSLocationManager( 9012): ... 8 common frames omitted
I/Process ( 9012): Sending signal. PID: 9012 SIG: 9
Lost connection to device.
她是我的 AndroidManifest.xml:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="de.geomodo.aschaffenburger_geschichten">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<queries>
<!-- If your app opens https URLs -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
<application
tools:replace="android:label"
android:label="Aschaffenburger Geschichten"
android:icon="@mipmap/ic_launcher">
<activity
android:exported="true"
android:name="com.ryanheise.audioservice.AudioServiceActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- ADD THIS "SERVICE" element -->
<service android:name="com.ryanheise.audioservice.AudioService" android:exported="true"
>
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
</service>
<!-- ADD THIS "RECEIVER" element -->
<receiver android:name="com.ryanheise.audioservice.MediaButtonReceiver" android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
<service android:name="com.transistorsoft.locationmanager.service.TrackingService" android:foregroundServiceType="location" />
<service android:name="com.transistorsoft.locationmanager.service.LocationRequestService" android:foregroundServiceType="location" />
<!-- flutter_background_geolocation licence -->
<meta-data android:name="com.transistorsoft.locationmanager.license" android:value="****************************************" />
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
当更改android:name="com.ryanheise.audioservice.AudioServiceActivity"
回android:name=".MainActivity"
应用程序不再崩溃时,但当然 audio_service 包不起作用。
这是我的 main.dart:
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Container(),
title: 'Aschaffenburger Geschichten',
);
}
}
我的颤振医生输出:
[✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-arm, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 2020.3)
[✓] VS Code (version 1.63.2)
[✓] Connected device (1 available)
有什么帮助吗?