2011-01-19 3 views
3

Я следую этот учебник: link textAndroid предпочтения проблема

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) неожиданно остановилось. Пожалуйста, попробуйте еще раз»

я не нашел ни одной ошибки в коде Я хотел бы также, чтобы показать свою filestructure, если это помогает:. alt text

AndroidManifest.xml: alt text

Что такое не так с кодом?

Даже если добавить (где находится курсор)

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

Я все еще получаю сообщение об ошибке.

+0

Что говорит журнал? В eclipse переключитесь на перспективу DDMS, чтобы увидеть logcat. Или запустите adb logcat из командной строки. Вероятно, вам не хватает строки в манифесте. –

+0

... или запустить в режиме отладки, если у вас есть Eclipse. –

+0

Режим отладки ужасен. Используйте перспективу DDMS. Или еще лучше, запустите лог-код с терминала. – Falmarri

ответ

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 или перспективу DDMS в Eclipse для проверки LogCat и просмотра трассировки стека, связанной с вашим сбоем.

+0

Я обновил сообщение с помощью androidmanifest.xml. Кажется хорошо для меня ... Logcat говорит: Android.Content.ActivityNotFoundException: не удается найти явный класс активности {PreferencesTutorial.com.examples/java.util.prefs.Preferences}; Вы объявили эту активность в своем AndroidManifest.xml? – erdomester

+0

Когда я запустил приложение, я получил исключение nullpointer: [2011-01-19 10:38:06 - ddms] null java.lang.NullPointerException \t на com.android.ddmlib.JdwpPacket.writeAndConsume (JdwpPacket.java:213) \t в com.android.ddmlib.Client.sendAndConsume (Client.java:573) \t на com.android.ddmlib.HandleHello. sendHELO (HandleHello.java:142) \t на com.android.ddmlib.HandleHello.sendHelloCommands (HandleHello.java:65) \t в com.android.ddmlib.Client.getJdwpPacket (Client.java:670) \t на ком .android.ddmlib.MonitorThread.processClientActivity (MonitorThread.java:317) \t at com.android.ddmlib.MonitorThread.run (MonitorThread.java:263) – erdomester

+0

Я не в чем проблема, но я сделал учебник twi и они оба работают, но для этого. Я сравнивал файлы и не обнаружил различий. Может быть, ошибка. Или, может быть, я ошибка. – erdomester

0

Является ли ошибка, поднятая в OnClick в PreferencesTutorial Class или onCreate в классе предпочтений? Прикрепите пару Log.d («Debug», «% ID») в разных местах и ​​посмотрите, какой из них не вызван.

1

Попробуйте удалить этот импорт, если у вас есть;

import java.util.prefs.Preferences; 
Смежные вопросы