i made a app that download a music by DownloadService and then go to another activity to play that music .
my app work in any device properly . but in all kitkat version of android for example xperia z4 and too galaxy grande 4.2.2 when the music downloaded and the app go to another activity for play that music the app is crash for first time but for another try to play music the app work fine . the logcat is according to .
it is weird this app even on low version of android devicees dont have out of memory error
03-17 19:07:52.232: E/AndroidRuntime(30593): FATAL EXCEPTION: main
03-17 19:07:52.232: E/AndroidRuntime(30593): java.lang.IllegalStateException: Could not execute method of the activity
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.view.View$1.onClick(View.java:3797)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.view.View.performClick(View.java:4432)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.view.View$PerformClick.run(View.java:18339)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.os.Handler.handleCallback(Handler.java:725)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.os.Handler.dispatchMessage(Handler.java:92)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.os.Looper.loop(Looper.java:137)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.app.ActivityThread.main(ActivityThread.java:5283)
03-17 19:07:52.232: E/AndroidRuntime(30593): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 19:07:52.232: E/AndroidRuntime(30593): at java.lang.reflect.Method.invoke(Method.java:511)
03-17 19:07:52.232: E/AndroidRuntime(30593): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
03-17 19:07:52.232: E/AndroidRuntime(30593): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
03-17 19:07:52.232: E/AndroidRuntime(30593): at dalvik.system.NativeStart.main(Native Method)
03-17 19:07:52.232: E/AndroidRuntime(30593): Caused by: java.lang.reflect.InvocationTargetException
03-17 19:07:52.232: E/AndroidRuntime(30593): at java.lang.reflect.Method.invokeNative(Native Method)
03-17 19:07:52.232: E/AndroidRuntime(30593): at java.lang.reflect.Method.invoke(Method.java:511)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.view.View$1.onClick(View.java:3792)
03-17 19:07:52.232: E/AndroidRuntime(30593): ... 11 more
03-17 19:07:52.232: E/AndroidRuntime(30593): Caused by: java.lang.OutOfMemoryError
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:817)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.content.res.Resources.loadDrawable(Resources.java:2854)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.content.res.Resources.getDrawable(Resources.java:1521)
03-17 19:07:52.232: E/AndroidRuntime(30593): at android.view.View.setBackgroundResource(View.java:15327)
03-17 19:07:52.232: E/AndroidRuntime(30593): at com.tdm.SingingStudio.Record1.d(Unknown Source)
03-17 19:07:52.232: E/AndroidRuntime(30593): at com.tdm.SingingStudio.Record1.a(Unknown Source)
03-17 19:07:52.232: E/AndroidRuntime(30593): at com.tdm.SingingStudio.Record1.myClickrecord(Unknown Source)
03-17 19:07:52.232: E/AndroidRuntime(30593): ... 14 more
03-17 19:07:52.673: E/android.os.Debug(548): !@Dumpstate > dumpstate -k -t -z -d -o /data/log/dumpstate_app_error
03-17 19:08:09.519: E/ViewRootImpl(548): sendUserActionEvent() mView == null
03-17 19:08:09.849: E/dalvikvm(31085): adjustAdaptiveCoef max=6291456, min=1572864, ut=568
03-17 19:08:09.929: E/dalvikvm(31085): adjustAdaptiveCoef max=8388608, min=2097152, ut=368
03-17 19:08:09.939: E/com.tdm.SingingStudio(31085): message
03-17 19:08:10.029: E/AudioResampler(130): Unsupported sample format, 1 bits, 2 channels
03-17 19:08:10.059: E/dalvikvm(31085): adjustAdaptiveCoef max=8388608, min=2097152, ut=256
03-17 19:08:10.170: E/dalvikvm(31085): adjustAdaptiveCoef max=8388608, min=2097152, ut=256
03-17 19:08:10.300: E/dalvikvm(31085): adjustAdaptiveCoef max=8388608, min=2097152, ut=256
03-17 19:08:10.520: E/EnterpriseContainerManager(548): ContainerPolicy Service is not yet ready!!!
03-17 19:08:11.831: E/EnterpriseContainerManager(548): ContainerPolicy Service is not yet ready!!!
03-17 19:08:13.092: E/AudioResampler(130): Unsupported sample format, 1 bits, 1 channels
03-17 19:08:13.163: E/lights(548): write_int failed to open -1
my second activity :
public void myClickrecord(View v){
try{
RecordButton = (ImageButton) findViewById(R.id.button1);
PlayButton = (ImageButton) findViewById(R.id.button2);
backButton = (ImageButton) findViewById(R.id.backButton);
saveButton = (ImageButton) findViewById(R.id.saveButton);
orgsound = (ImageButton) findViewById(R.id.orgsound);
if(start){
RecordButton.setImageResource(R.drawable.micstop);
PlayButton.setVisibility( View.INVISIBLE );
backButton.setVisibility( View.INVISIBLE );
orgsound.setVisibility( View.INVISIBLE );
onRecord(true);
start = false;
}else{
RecordButton.setImageResource(R.drawable.mic);
RecordButton.setVisibility( View.INVISIBLE );
PlayButton.setVisibility( View.VISIBLE );
backButton.setVisibility( View.VISIBLE );
saveButton.setVisibility( View.VISIBLE );
onRecord(false);
start = true;
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), ""+e, Toast.LENGTH_LONG).show();
}
}
private void onRecord(boolean start) {
if (start) {
startRecording();
} else {
stopRecording();
}
}
private void onPlay(boolean start) {
if (start) {
startPlaying();
} else {
stopPlaying();
}
}
private void startRecording() {
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "record");
wl.acquire();
if (mStartTime == 0L) {
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
try {
mp = new MediaPlayer();
//mp.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mp.setDataSource(Environment.getExternalStorageDirectory()+File.separator+"SingingStudio/"+songname+"/"+songname+".ogg");
} catch (IllegalArgumentException | SecurityException
| IllegalStateException | IOException e1) {
Toast.makeText(getApplicationContext(), "به نظر میرسد مشکلی پیش آمده است !!!", Toast.LENGTH_LONG).show();
}
mRecorder = new MediaRecorder();
if(Build.VERSION.SDK_INT >= 10){
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setAudioEncodingBitRate(96000);
mRecorder.setAudioSamplingRate(44100);
}else{
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setAudioEncodingBitRate(12200);
mRecorder.setAudioSamplingRate(8000);
}
try {
mRecorder.prepare();
mp.prepare();
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "به نظر میرسد مشکلی پیش آمده است !!!", Toast.LENGTH_LONG).show();
}
mRecorder.start();
mp.start();
mp.setOnCompletionListener(new OnCompletionListener(){
// @Override
public void onCompletion(MediaPlayer arg0) {
RecordButton.setImageResource(R.drawable.mic);
RecordButton.setVisibility( View.INVISIBLE );
PlayButton.setVisibility( View.VISIBLE );
backButton.setVisibility( View.VISIBLE );
saveButton.setVisibility( View.VISIBLE );
onRecord(false);
start = true;
}
});
}
private void stopRecording() {
try{
if(mRecorder != null){
continueKaraoke = false;
mRecorder.stop();
// mRecorder.reset();
mRecorder.release();
mRecorder = null;
}
mp.stop();
mp.release();
mp = null;
wl.release();
mSwitcher.setText("");
TextView soundvol = (TextView) findViewById(R.id.soundvol);
soundvol.setVisibility( View.VISIBLE );
yourSeekBar.setVisibility( View.VISIBLE );
equalizer[0] = (VerticalSeekBar) findViewById(R.id.seekBar2);
equalizer[0].setVisibility( View.VISIBLE );
equalizer[1] = (VerticalSeekBar) findViewById(R.id.seekBar3);
equalizer[1].setVisibility( View.VISIBLE );
equalizer[2] = (VerticalSeekBar) findViewById(R.id.seekBar4);
equalizer[2].setVisibility( View.VISIBLE );
equalizer[3] = (VerticalSeekBar) findViewById(R.id.seekBar5);
equalizer[3].setVisibility( View.VISIBLE );
equalizer[4] = (VerticalSeekBar) findViewById(R.id.seekBar6);
equalizer[4].setVisibility( View.VISIBLE );
echo = (ImageButton) findViewById(R.id.echobox);
echo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//is chkIos checked?
if (cheaked) {
eReverb.setEnabled(false);
echo.setImageResource(R.drawable.uncheked);
cheaked = false;
}else{
echo.setImageResource(R.drawable.cheked);
eReverb.setEnabled(true);
cheaked = true;
}
}
});
RelativeLayout relativeecho = (RelativeLayout) findViewById(R.id.RelativeLayoutecho);
relativeecho.setVisibility( View.VISIBLE );
ImageView imageffects = (ImageView) findViewById(R.id.imageffects);
imageffects.setVisibility( View.VISIBLE );
preshow.setText("");
preshow.setBackgroundResource(R.drawable.efectsbackgrande);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), ""+e, Toast.LENGTH_LONG).show();
}
}