2015-06-23 4 views
1

Я пытаюсь запустить новую настройку. К сожалению, я получил эти ошибки:Ошибка при входе в новую активность Android

06-24 01:18:17.347: E/AndroidRuntime(16017): FATAL EXCEPTION: main 
06-24 01:18:17.347: E/AndroidRuntime(16017): Process: com.stoper.moneystopwatch, PID: 16017 
06-24 01:18:17.347: E/AndroidRuntime(16017): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stoper.moneystopwatch/com.stoper.moneystopwatch.Settings}: android.view.InflateException: Binary XML file line #1: Error inflating class RelativeLayout 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2252) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2301) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread.access$800(ActivityThread.java:144) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.os.Handler.dispatchMessage(Handler.java:106) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.os.Looper.loop(Looper.java:136) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread.main(ActivityThread.java:5212) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at java.lang.reflect.Method.invokeNative(Native Method) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at java.lang.reflect.Method.invoke(Method.java:515) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at dalvik.system.NativeStart.main(Native Method) 
06-24 01:18:17.347: E/AndroidRuntime(16017): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class RelativeLayout 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:441) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.inflate(GenericInflater.java:317) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.inflate(GenericInflater.java:263) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.PreferenceFragment.addPreferencesFromResource(PreferenceFragment.java:285) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at com.stoper.moneystopwatch.Settings$MyPreferenceFragment.onCreate(Settings.java:28) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.Fragment.performCreate(Fragment.java:1683) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:863) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.BackStackRecord.run(BackStackRecord.java:684) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1461) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.Activity.performStart(Activity.java:5249) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225) 
06-24 01:18:17.347: E/AndroidRuntime(16017): ... 11 more 
06-24 01:18:17.347: E/AndroidRuntime(16017): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.preference.RelativeLayout" on path: DexPathList[[zip file "/data/app/com.stoper.moneystopwatch-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.stoper.moneystopwatch-1, /vendor/lib, /system/lib]] 
06-24 01:18:17.347: E/AndroidRuntime(16017): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.createItem(GenericInflater.java:375) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.onCreateItem(GenericInflater.java:417) 
06-24 01:18:17.347: E/AndroidRuntime(16017): at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:428) 
06-24 01:18:17.347: E/AndroidRuntime(16017): ... 23 more 

Мой старт активность:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     Intent i= new Intent(Main.this, Settings.class); 
     startActivity(i); 
     return true; 
    } 
} 

Мои настройки Класс:

public class Settings extends PreferenceActivity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); 
    } 

    public static class MyPreferenceFragment extends PreferenceFragment 
    { 
     @Override 
     public void onCreate(final Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.settings); 
     } 
    } 
} 

My Android Manifest:

<activity 
    android:name=".Settings" 
    android:label="@string/action_settings" > 
</activity> 

Я уже пытался очистить и перестроить проект т. Я использую Eclipse.

Было бы очень приятно, если бы кто-то помог мне с этой проблемой, потому что я уже несколько часов борюсь с ней.

ответ

0

Учитывая ваш логарифм, у вас есть проблема внутри вашего предпочтения xml. android.view.InflateException: Binary XML file line #1: Error inflating class RelativeLayout

Вашего XML не должен содержать какое-либо RelativeLayout или любые обычные виджеты, кроме предпочтений отдельных тегов as described in here.

Как для небольшого теста удалить все XML из R.xml.settings и вставить

<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="first_preferencescreen"> 
<CheckBoxPreference 
     android:key="wifi enabled" 
     android:title="WiFi" /> 
<PreferenceScreen 
     android:key="second_preferencescreen" 
     android:title="WiFi settings"> 
    <CheckBoxPreference 
      android:key="prefer wifi" 
      android:title="Prefer WiFi" /> 
    </PreferenceScreen> </PreferenceScreen> 


и попробуй еще раз.

+0

Теперь он отлично работает. Спасибо за помощь. Я понятия не имел, что здесь не могу использовать RelativeLayout. – KamCho

+0

Отлично !, рад помочь –

0

Невозможно заменить компоновку android.R.id.content напрямую, и вам нужно иметь собственный макет в качестве ребенка для этого. У этого есть грубая компоновка в Xml (скажем, act_settings.xml), а в вашем oncreate используйте setContentView(R.layout.act_settings); и замените корневой вид этого макета в транзакции фрагмента

Смежные вопросы