Android测试崩溃

时间:2016-09-29 07:51:03

标签: java android

我一直在使用Android Studio练习,有时我会遇到崩溃,我没有解释。例如,这是一个按钮,只要按下它就会使设备静音。

import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    Button silentButton;
    private AudioManager myAudioManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


     silentButton = (Button) findViewById(R.id.silentButton);

        silentButton.setOnClickListener(
                new Button.OnClickListener(){
                    public void onClick(View v){
                        myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                        Toast.makeText(MainActivity.this,"Silent Mode Activated!",Toast.LENGTH_LONG);
                    }
                }
        );

    }

}

注意:当我创建项目时,我选择了Ice Cream Sandwich(4.1),我运行代码的设备都是Marshmallow(6.0& 6.0.1)

为什么我会崩溃,我该如何防止崩溃?感谢。

更新:静音模式现在可以正常工作,但Toast没有?

3 个答案:

答案 0 :(得分:1)

Heres一切都修复了静音模式和吐司。谢谢大家。

import android.content.Context;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    Button silentButton;
    private AudioManager myAudioManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
        silentButton = (Button) findViewById(R.id.silentButton);

        silentButton.setOnClickListener(
                new Button.OnClickListener(){
                    public void onClick(View v){
                        myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                        Toast.makeText(MainActivity.this,"Silent Mode Activated!",Toast.LENGTH_LONG ).show();
                    }
                }
        );

    }

}

答案 1 :(得分:0)

myAudioManager未初始化。你的应用肯定会在那里崩溃。

myAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

尝试初始化myAudioManager

myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 

答案 2 :(得分:0)

myAudioManager =(AudioManager)getSystemService(Context.AUDIO_SERVICE);

我认为您修改AndroidManifest.xml以添加必要的权限。对于链接下面的相同程序访问,以获取有关执行相同操作的更多信息。 http://www.tutorialspoint.com/android/android_audiomanager.htm