Ich versuche eine App zu erstellen, die Audio im Hintergrund aufzeichnet. Ich benutze Service
Klasse für diesen Zweck. Da ich meine UI Thread
nicht blockieren möchte, habe ich in meiner Service-Klasse eine HandlerThread
erstellt, um den Aufzeichnungsvorgang durchzuführen. Wenn ich versuche, die Service
auszuführen, löst meine App ANR (Application Not Responding) error
. Ich kann nicht herausfinden, wie meine UI Thread
blockiert wird. Erwähnenswert ist auch, dass ich einen CountUp Timer erstellt habe, der auf meinem UI Thread läuft.ANR beim Starten der Audioaufnahme im Hintergrunddienst
ist hier mein Code:
public class AudioRecorderService extends Service {
private Looper mLooper;
private AudioRecorderHandler mAudioRecorderHandler;
private MediaRecorder mAudioRecorder;
public AudioRecorderService() {
}
private final class AudioRecorderHandler extends Handler {
private String fileName;
public AudioRecorderHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
fileName = Environment.getDataDirectory().getAbsolutePath() + "/" + "test.mp4";
mAudioRecorder = new MediaRecorder();
mAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mAudioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mAudioRecorder.setAudioEncodingBitRate(256);
mAudioRecorder.setAudioChannels(1);
mAudioRecorder.setAudioSamplingRate(44100);
mAudioRecorder.setOutputFile(fileName);
try {
mAudioRecorder.prepare();
mAudioRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Recording Started", Toast.LENGTH_LONG).show();
Message msg = mAudioRecorderHandler.obtainMessage();
msg.arg1 = startId;
mAudioRecorderHandler.sendMessage(msg);
return START_REDELIVER_INTENT;
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
android.os.Debug.waitForDebugger();
HandlerThread thread = new HandlerThread("AudioRecorder", Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
mLooper = thread.getLooper();
mAudioRecorderHandler = new AudioRecorderHandler(mLooper);
}
@Override
public void onDestroy() {
if (mAudioRecorder != null) {
mAudioRecorder.stop();
mAudioRecorder.release();
mAudioRecorder = null;
}
Toast.makeText(this, "Recording Done", Toast.LENGTH_LONG).show();
mLooper.quit();
mLooper.getThread().interrupt();
}
}
meine Fehlerprotokoll Hier wird:
06-19 16:22:15.971 509-551/? E/InputDispatcher: channel '41c32190 com.example.vaibhav.phrasesapp/com.example.vaibhav.phrasesapp.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
06-19 16:22:17.025 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.026 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.027 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.028 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.029 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.030 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.031 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.032 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.032 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.032 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.032 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:17.032 509-536/? E/FWKEXT: Enter GetCurrentOP
06-19 16:22:19.172 9787-9791/? E/Trace: error opening trace file: No such file or directory (2)
06-19 16:22:19.176 9787-9793/? E/jdwp: jdwp::setsockopt(SO_SNDTIMEO)
06-19 16:22:19.176 9787-9793/? E/jdwp: jdwp::setsockopt(SO_RCVTIMEO)
06-19 16:22:19.264 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.monkeyPatchExistingResources
06-19 16:22:19.266 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.pruneResourceCache
06-19 16:22:19.292 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.295 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.295 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.media.session.MediaController', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.296 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.widget.Toolbar', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.319 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.333 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.337 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.340 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.transition.TransitionManager', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.349 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.app.SharedElementCallback', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.361 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.app.assist.AssistContent', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.368 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.view.SearchEvent', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:19.374 9797-9797/com.example.vaibhav.phrasesapp E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.example.vaibhav.phrasesapp.MainActivity.access$super
06-19 16:22:27.799 803-1055/? E/CellLocation: create GsmCellLocation
06-19 16:22:27.802 803-1055/? E/CellLocation: create GsmCellLocation
06-19 16:22:28.446 595-595/? E/wpa_supplicant: Sorted scan results
06-19 16:22:28.446 595-595/? E/wpa_supplicant: 00:17:7c:3a:59:56 freq=2437 qual=0 noise=0 level=-66 flags=0xb
06-19 16:22:28.446 595-595/? E/wpa_supplicant: IEs
06-19 16:22:28.446 595-595/? E/wpa_supplicant: 000d2a2a2a2a76697275732a2a2a2a010882848b960c1218240301062a010032043048606c30140100000fac020100000fac020100000fac020000dd180050f2020101000003a4000027a4000042435e0062322f00dd0600e04c020160
06-19 16:22:28.446 595-595/? E/wpa_supplicant: Beacon IEs
06-19 16:22:28.446 595-595/? E/wpa_supplicant: 000d2a2a2a2a76697275732a2a2a2a010882848b960c1218240301060504000100002a010432043048606c30140100000fac020100000fac020100000fac020000dd180050f2020101000003a4000027a4000042435e0062322f00dd0600e04c020160
06-19 16:22:28.446 595-595/? E/wpa_supplicant: e4:f4:c6:43:dc:88 freq=2412 qual=0 noise=0 level=-70 flags=0x2b
06-19 16:22:28.446 595-595/? E/wpa_supplicant: IEs
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 00094e4554474541523238010882848b961224486c0301012a010032040c1830602d1aee1117ffff0000010000000000000000000000000c00000000003d160105060000000000000000000000000000000000000030140100000fac040100000fac040100000fac020000dd180050f2020101000003a4000027a4000042435e0062322f000b05040023127a4a0e14000a002c01c800140005001900dd07000c43070000000706455520010d10dda80050f204104a0001101044000102103b0001031047001038833092309218838e48e4f4c643dc881021000d4e4554474541522c20496e632e1023001d4e45544745415220576972656c6573732041636365737320506f696e74102400064a52363135301042000831323334353637381054000800060050f2040001101100144a52363135302028576972656c6573732041502910080002210c103c0001011049000600372a000120
06-19 16:22:28.447 595-595/? E/wpa_supplicant: d0:92:9e:c7:ce:82 freq=2462 qual=0 noise=0 level=-73 flags=0xb
06-19 16:22:28.447 595-595/? E/wpa_supplicant: IEs
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 001157696e646f77732050686f6e6539373139010882848b960c12182403010b0706494e20010d142a010030140100000fac040100000fac040100000fac02000032043048606c2d1a2c011bff000000000000000000000080000000000000000000003d160b0804000000000000000000000000000000000000004a0e14000a00c800c8001400050019007f080100000000000040dd180050f2020101010003a4000027a4000042435e0062322f00dd0900037f01010000ff7fdd7f0050f204104a0001101044000102103b00010010470010d44ca65da82f4caca8ebd26a3866b85b102100094d6963726f736f66741023000757696e646f77731024000a31302e302e3134333637104200013010540008000a0050f20000001011000d57696e646f77732070686f6e651008000211681049000600372a000120dd080050f21102000000dd0e0050f2122b000600d0929ec7ce80dd31506f9a09020200253b0d2200d0929ec7ce8111e8000a0050f2000000001011000d57696e646f77732070686f6e650e0000
06-19 16:22:28.447 595-595/? E/wpa_supplicant: Beacon IEs
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 001157696e646f77732050686f6e6539373139010882848b960c12182403010b050800010000000000002a010030140100000fac040100000fac040100000fac02000032043048606c2d1a2c011bff000000000000000000000080000000000000000000003d160b0804000000000000000000000000000000000000004a0e14000a00c800c8001400050019007f080100000000000040dd180050f2020101010003a4000027a4000042435e0062322f00dd0900037f01010000ff7fdd350050f204104a00011010440001021049000600372a00012010540008000a0050f20000001011000d57696e646f77732070686f6e65dd080050f21102000000dd0e0050f2122b000600d0929ec7ce80dd12506f9a09020200253b030600d0929ec7ce81
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 0c:d2:b5:46:4d:40 freq=2462 qual=0 noise=0 level=-84 flags=0xb
06-19 16:22:28.447 595-595/? E/wpa_supplicant: IEs
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 00064d756b657368010882848b961224486c03010b2a010432040c1830602d1a6e1117ff000000010000000000000000000000000c00000000003d160b0006000000000000000000000000000000000000003e0100dd1a0050f20101000050f20202000050f2020050f20401000050f202dd180050f2020101000003a4000027a4000042435e0062322f004a0e14000a002c01c8001400050019007f0101dd07000c430400000007064d5820010b10
06-19 16:22:28.447 595-595/? E/wpa_supplicant: Beacon IEs
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 00064d756b657368010882848b961224486c03010b32040c18306007064d5820010b143308200102030405060733082105060708090a0b050400010020dd1a0050f20101000050f20202000050f2020050f20401000050f2022a01042d1a6e1117ff000000010000000000000000000000000c00000000003d160b0006000000000000000000000000000000000000004a0e14000a002c01c8001400050019007f0101dd180050f2020101000003a4000027a4000042435e0062322f00dd07000c4304000000
06-19 16:22:28.447 595-595/? E/wpa_supplicant: 0c:d2:b5:3f:b7:04 freq=2447 qual=0 noise=0 level=-87 flags=0xb
06-19 16:22:28.447 595-595/? E/wpa_supplicant: IEs
06-19 16:22:28.453 595-595/? E/wpa_supplicant: 001041697274656c5f5a65726f746f756368010882848b961224486c0301082a010432040c1830602d1a6e1117ff000000010000000000000000000000000c00000000003d16080406000000000000000000000000000000000000003e0100dd1a0050f20101000050f20202000050f2020050f20401000050f202dd180050f2020101000003a4000027a4000042435e0062322f004a0e14000a002c01c8001400050019007f0101dd07000c430400000007064d5820010b10
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:28.461 595-595/? E/wpa_supplicant: WPS: WFA subelement id=0 len=1
06-19 16:22:49.020 509-528/? E/ANRManager: writeStringToFile error: /sys/module/mlog/parameters/do_mlog java.io.FileNotFoundException: /sys/module/mlog/parameters/do_mlog: open failed: ENOENT (No such file or directory)
06-19 16:22:49.033 509-528/? E/ANRManager: writeStringToFile error: /sys/kernel/debug/tracing/tracing_on java.io.FileNotFoundException: /sys/kernel/debug/tracing/tracing_on: open failed: ENOENT (No such file or directory)
06-19 16:22:49.034 509-528/? E/ANRManager: writeStringToFile error: /sys/kernel/debug/binder/transaction_log_enable java.io.FileNotFoundException: /sys/kernel/debug/binder/transaction_log_enable: open failed: ENOENT (No such file or directory)
06-19 16:22:49.035 509-528/? E/ANRManager: writeStringToFile error: /sys/module/mlog/parameters/timer_intval java.io.FileNotFoundException: /sys/module/mlog/parameters/timer_intval: open failed: ENOENT (No such file or directory)
06-19 16:22:50.830 509-528/? E/ANRManager: ANR in com.example.vaibhav.phrasesapp
Reason: Executing service com.example.vaibhav.phrasesapp/.AudioRecorderService
Load: 6.93/8.93/20.67
Android time :[2016-06-19 16:22:50.828] [54834.406]
CPU usage from 16261ms to 0ms ago:
2% 158/adbd: 0.4% user + 1.5% kernel/faults: 1122 minor
0.7% 9563/kworker/0:2: 0% user + 0.7% kernel
0.5% 9653/logcat: 0.2% user + 0.3% kernel
0.3% 509/system_server: 0.3% user + 0% kernel/faults: 43 minor
0.3% 45/bat_thread_kthr: 0% user + 0.3% kernel
0.1% 601/com.android.systemui: 0.1% user + 0% kernel/faults: 14 minor
0.1% 881/com.cleanmaster.boost:service: 0.1% user + 0% kernel/faults: 1 minor
0.1% 53/disp_config_upd: 0% user + 0.1% kernel
0.1% 133/surfaceflinger: 0% user + 0% kernel/faults: 4 minor
0.1% 9797/com.example.vaibhav.phrasesapp: 0% user + 0% kernel/faults: 11 minor
0% 54/mmcqd/0: 0% user + 0% kernel
0% 65/mt_gpufreq: 0% user + 0% kernel
0% 595/wpa_supplicant: 0% user + 0% kernel/faults: 1 minor
0% 665/com.android.phone: 0% user + 0% kernel/faults: 8 minor
0% 4987/com.google.android.apps.maps: 0% user + 0% kernel/faults: 1 minor
0% 7872/kworker/0:0: 0% user + 0% kernel
3.6% TOTAL: 1% user + 2.6% kernel
06-19 16:22:50.832 509-528/? E/ActivityManager: get crashInfo fail.
Kann jemand bitte helfen ?????
tat ich das, aber ich bin immer noch ANR .... @SohailZahid –
@VaibhavAgarwal Welche API Version Sie verwenden? –
ich es auf API-Ebene leite 17 –