【问题标题】:Android App Start up IssueAndroid 应用启动问题
【发布时间】:2012-07-06 18:12:00
【问题描述】:

-编辑了此块中的主要代码-
我正在编写的这段代码在启动时出现问题。它启动应用程序 GUI 并显示“我们很抱歉,“Appname”已不幸停止工作。”

[这里是 logcat 错误][1]
我猜它与这里的启动代码有关:

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

    DialogPreference dp = (DialogPreference) findPreference("mediavolume");
    dp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        public boolean onPreferenceChange(Preference preference,
                Object newValue) {
            SeekBar volumeBar = (SeekBar) findViewById(R.id.seekBar);
            final AudioManager manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

            volumeBar.setMax(manager
                    .getStreamMaxVolume(AudioManager.STREAM_SYSTEM));
            volumeBar.setProgress(manager
                    .getStreamVolume(AudioManager.STREAM_SYSTEM));

            volumeBar
                    .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
                        @Override
                        public void onStartTrackingTouch(SeekBar seekBar) {
                            Toast.makeText(volman.this, "Starting", Toast.LENGTH_LONG).show();

                        }

                        @Override
                        public void onStopTrackingTouch(SeekBar seekBar) {
                            Toast.makeText(volman.this, "Now Stopping", Toast.LENGTH_LONG).show();

                        }
                        public void onProgressChanged(SeekBar seekBar,
                                int progress, boolean fromUser) {
                            manager.setStreamVolume(
                                    AudioManager.STREAM_SYSTEM, progress,
                                    AudioManager.FLAG_SHOW_UI);
                            Toast.makeText(volman.this, "Now going Silent", Toast.LENGTH_LONG).show();

                        }
                    });

            return false;
        }
    });
}

private DialogPreference findPreference(String string) {
    return null;
}

}

【问题讨论】:

    标签: android startup-error


    【解决方案1】:

    你必须设置内容视图。

    super.onCreate(savedInstanceState);之后添加:

    setContentView(R.layout.your_layout);
    

    编辑:

    这就是发生的事情。 您已将此代码粘贴到您的 Activity 中。

    Eclipse 给您一个错误:“方法 findPreference(String) 未定义为类型 volman”。这很正常,因为您必须扩展 PreferenceActivity 而不是 Activity

    您做了快速修复:创建方法 findPreference(String)

    这创建了一个返回 null 的方法,但使您的代码编译。

    这就是您收到NullPointerException 的原因。

    【讨论】:

    • 我有一个 UI,即使我用 UI 运行它仍然崩溃。
    • 你的用户界面是什么意思? Activity 将自身附加到 UI 的方式是通过上面描述的 setContentView()。
    • 我的意思是我之前在代码中使用过它,但即使使用 Layout 调用它仍然崩溃。
    • 我确定你错过了这个“setContentView(R.layout.your_layout);”如上面的答案所述。如果它仍然崩溃,那么把清单也给我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多