SpatializerHelper: fix the null pointer exception occurred when create spatializer
// the NullPointerException log
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AudioService
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'byte android.media.ISpatializer.getActualHeadTrackingMode()' on a null object reference
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.SpatializerHelper.createSpat(SpatializerHelper.java:965)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.SpatializerHelper.setSpatializerEnabledInt(SpatializerHelper.java:799)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.SpatializerHelper.reset(SpatializerHelper.java:337)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.AudioService.onAudioServerDied(AudioService.java:2134)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.AudioService$AudioHandler.handleMessage(AudioService.java:10295)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:224)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at android.os.Looper.loop(Looper.java:318)
11-15 07:34:17.191 1000 2107 4695 E AndroidRuntime: at com.android.server.audio.AudioService$AudioSystemThread.run(AudioService.java:10067)
Change-Id: I0d43b6f4ace86a9db8bb1359dbaf5c28241b8cb4
Signed-off-by: wumin3 <wumin3@xiaomi.com>
diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java
index 18f24db..f465867 100644
--- a/services/core/java/com/android/server/audio/SpatializerHelper.java
+++ b/services/core/java/com/android/server/audio/SpatializerHelper.java
@@ -965,6 +965,11 @@
if (mSpat == null) {
mSpatCallback = new SpatializerCallback();
mSpat = AudioSystem.getSpatializer(mSpatCallback);
+ if (mSpat == null) {
+ Log.e(TAG, "createSpat(): No Spatializer found");
+ postReset();
+ return;
+ }
try {
//TODO: register heatracking callback only when sensors are registered
if (mIsHeadTrackingSupported) {