6

У меня возникают проблемы с фрагментами на платформе 2.2. Я импортировал библиотеку android-support-v4.jar для поддержки фрагментов.
Я попытался изменить цель на Honeycomb 3.0, и код работает. Итак, я хочу знать, существует ли способ работать с фрагментами на собственной платформе и другим способом сделать это с использованием предыдущих версий.Ошибка раздувания фрагмента из макета android-support-v4

Вот мой AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.nsy.testefragmentos" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-sdk android:minSdkVersion="8" /> 
    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:label="@string/app_name" 
      android:name=".TesteFragmentosActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
      <activity android:name="FragmentoLista" /> 
      <activity android:name="FragmentoDetalhe" /> 
    </application> 
</manifest> 

А вот мой главный класс

package com.nsy.testefragmentos; 

import android.app.Activity; 
import android.os.Bundle; 

public class TesteFragmentosActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

И, наконец, фрагмент вызывается из main.xml файла:

package com.nsy.testefragmentos; 

import android.os.Bundle; 
import android.support.v4.app.ListFragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class FragmentoLista extends ListFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return super.onCreateView(inflater, container, savedInstanceState);   
    } 
} 

когда я бегу , в logCat появляется следующая ошибка:

12-24 11:46:16.708: E/AndroidRuntime(395): FATAL EXCEPTION: main 
12-24 11:46:16.708: E/AndroidRuntime(395): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nsy.testefragmentos/com.nsy.testefragmentos.TesteFragmentosActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.os.Looper.loop(Looper.java:123) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-24 11:46:16.708: E/AndroidRuntime(395): at java.lang.reflect.Method.invokeNative(Native Method) 
12-24 11:46:16.708: E/AndroidRuntime(395): at java.lang.reflect.Method.invoke(Method.java:521) 
12-24 11:46:16.708: E/AndroidRuntime(395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-24 11:46:16.708: E/AndroidRuntime(395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-24 11:46:16.708: E/AndroidRuntime(395): at dalvik.system.NativeStart.main(Native Method) 
12-24 11:46:16.708: E/AndroidRuntime(395): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
12-24 11:46:16.708: E/AndroidRuntime(395): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.Activity.setContentView(Activity.java:1647) 
12-24 11:46:16.708: E/AndroidRuntime(395): at com.nsy.testefragmentos.TesteFragmentosActivity.onCreate(TesteFragmentosActivity.java:12) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
12-24 11:46:16.708: E/AndroidRuntime(395): ... 11 more 
12-24 11:46:16.708: E/AndroidRuntime(395): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.nsy.testefragmentos-1.apk] 
12-24 11:46:16.708: E/AndroidRuntime(395): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
12-24 11:46:16.708: E/AndroidRuntime(395): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
12-24 11:46:16.708: E/AndroidRuntime(395): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.createView(LayoutInflater.java:466) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 
12-24 11:46:16.708: E/AndroidRuntime(395): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
12-24 11:46:16.708: E/AndroidRuntime(395): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
12-24 11:46:16.708: E/AndroidRuntime(395): ... 20 more 
12-24 11:46:21.828: I/Process(395): Sending signal. PID: 395 SIG: 9 

Я действительно не знаю, что я делаю неправильно =/Может ли кто-нибудь мне помочь? thnkx

ответ

6

Ваша деятельность должна быть расширена FragmentActivity вместо Activity. Сама была та же проблема.

public class TesteFragmentosActivity extends FragmentActivity { 
    ... 
} 
+0

Спасибо, Boude, в этом была проблема! \ О / –

0

Иногда ошибка (ошибка моей) я столкнулся, что я с использованием фрагмента (android.app.fragment) в одном файле, а в другой, назвав его фрагментом (android.support.v4.app. Фрагмент). после проверки линии Один из них я нашел это и решил, для этой ошибки я провел 5-6 часов, я реализовал ImageSlider