安卓偏好设置问题

3

我正在按照这个教程进行操作:链接文字

Preferences.java文件:

public class Preferences extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
}

}

PreferencesTutorial.java:

public class PreferencesTutorial extends Activity{

@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button prefBtn = (Button) findViewById(R.id.prefButton);
        prefBtn.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                        Intent settingsActivity = new Intent(getBaseContext(),
                                        Preferences.class);
                        startActivity(settingsActivity);
                }
        });
 }

Preferences.xml:

alt text

当应用程序启动并且我点击prefButton时,出现错误:“应用程序 PreferencesTutorial(进程 PreferencesTutorial.com.examples)意外停止。请重试”。

我没有在代码中发现任何错误。如果有助于理解,我也想展示我的文件结构:

alt text

AndroidManifest.xml:

alt text

代码有什么问题吗?

即使我添加了(光标处)

<activity
        android:name=".Preferences"
        android:label="@string/set_preferences">
    </activity>

我仍然遇到错误。

日志显示了什么?在Eclipse中,切换到DDMS视图以查看Logcat。或者,从命令行运行adb logcat。您可能在清单中缺少该行。 - Cheryl Simon
如果您使用Eclipse,可以在调试模式下运行。 - Robert Kolner
调试模式很糟糕。使用DDMS视图。或者更好的是,从终端运行logcat。 - Falmarri
1
调试模式和Logcat适用于不同的事情。了解这两种调试策略都是很好的。 - Cheryl Simon
4个回答

1
尝试删除此导入(import)(如果有的话)。
import java.util.prefs.Preferences;

0

你必须在你的androidManifest.xml文件中提到这个

<activity
        android:name=".Preferences"
        android:label="@string/set_preferences">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT"/>

        </intent-filter>  
</activity>

0

你的清单文件中可能没有定义Preferences

但是,正如其他人所指出的那样,使用adb logcat、DDMS或Eclipse中的DDMS透视图来检查LogCat并查看与崩溃相关的堆栈跟踪。


我已经更新了帖子,加入了androidmanifest.xml。在我看来一切都很好...Logcat显示:Android.Content.ActivityNotFoundException: 无法找到显式活动类{PreferencesTutorial.com.examples/java.util.prefs.Preferences}; 您是否在AndroidManifest.xml中声明了此活动? - erdomester
当我启动应用程序时,出现了空指针异常: [2011-01-19 10:38:06 - ddms]null java.lang.NullPointerException at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) at com.android.ddmlib.Client.sendAndConsume(Client.java:573) at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142) at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65) at com.android.ddmlib.Client.getJdwpPacket(Client.java:670) at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317) at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263) - erdomester
我不知道问题出在哪里,但我重新做了两遍教程,都可以运行,但对于这一个来说不行。我比较了文件,没有发现任何差异。可能是一个 bug,也可能是我自己的问题。 - erdomester

0

错误是在PreferencesTutorial类的OnClick还是在preferences类的onCreate中引发的?在各个位置放置一些Log.d("Debug","%ID"),看看哪一个没有被调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接