Samsung S7とTributeで動作するアプリがあります。私は最近サムスンS5でそれを試して、クラッシュしました。私はこれを得る:新しいデバイスでアプリが動作しない
[ 11-19 13:08:57.067 3463: 4039 D/ ]
HostConnection::get() New Host Connection established 0x9e587a40, tid 4039
11-19 13:08:57.156 3463-4039/com.example.android.pneumoniaapp I/OpenGLRenderer: Initialized EGL, version 1.4
11-19 13:08:57.156 3463-4039/com.example.android.pneumoniaapp D/OpenGLRenderer: Swap behavior 1
11-19 13:09:02.117 3463-3463/com.example.android.pneumoniaapp D/AndroidRuntime: Shutting down VM
11-19 13:09:02.118 3463-3463/com.example.android.pneumoniaapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.pneumoniaapp, PID: 3463
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:5610)
at android.view.View$PerformClick.run(View.java:22260)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5610)
at android.view.View$PerformClick.run(View.java:22260)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.RuntimeException: setAudioSource failed.
at android.media.MediaRecorder.setAudioSource(Native Method)
at com.example.android.pneumoniaapp.Main_Activity.Recordbutton(Main_Activity.java:148)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5610)
at android.view.View$PerformClick.run(View.java:22260)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
私はレコードボタンを押すとクラッシュする。このボタンは、audioRecordと加速度計を使用して聴覚情報を記録します。 TributeとSAMSUNG S7では、コード全体が問題なく動作します。
public void Recordbutton(View view) {
if (recordbuttonstatus) {
playBtn.setEnabled(true);
recordbuttonstatus = false;
startBtn.setText(getString(R.string.stoprecording));
sensorManager.registerListener(accelListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
Thread accelerometerrecord = new Thread(new Runnable() {
@Override
public void run(){
File accoutputFile = new File(Environment.getExternalStorageDirectory(), "accelerometervals.txt");
try {
accoutputFile.createNewFile();
} catch (IOException e){
e.printStackTrace();
}
try {
writer = new FileWriter(accoutputFile, false); /*When false, the file is overwritten, when true, the file is appended.*/
} catch (IOException e) {
Log.e(LOG_TAG2, "failed");
}
}
});
accelerometerrecord.start();
Thread recordThread = new Thread(new Runnable() {
@Override
public void run() {
File file = new File(Environment.getExternalStorageDirectory(), "test.pcm");
try {
file.createNewFile();
OutputStream outputStream = new FileOutputStream(file);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
DataOutputStream dataOutputStream = new DataOutputStream(bufferedOutputStream);
int minBufferSize = AudioRecord.getMinBufferSize(samplingFreq,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT);
short[] audioData = new short[minBufferSize];
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
samplingFreq,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
minBufferSize);
audioRecord.startRecording();
while (!recordbuttonstatus) {
int numberOfShort = audioRecord.read(audioData, 0, minBufferSize);
for (int i = 0; i < numberOfShort; i++) {
dataOutputStream.writeShort(audioData[i]);
}
}
audioRecord.stop();
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
recordThread.start();
} else {
startBtn.setText(getString(R.string.newrecording));
recordbuttonstatus = true;
sensorManager.unregisterListener(accelListener);
}
}
RuntimeException:setAudioSource failed' ... 'Main_Activity.java:148'それは何行ですか? –