2014-02-19 3 views
14
02-19 11:49:17.369: E/AndroidRuntime(4209): java.lang.NoClassDefFoundError: com.slidingmenus.fragments.HomeFragment 
02-19 11:49:17.369: E/AndroidRuntime(4209):  at com.slidingmenus.MainActivity.displayCategoryView(MainActivity.java:242) 
02-19 11:49:17.369: E/AndroidRuntime(4209):  at com.slidingmenus.MainActivity.onCreate(MainActivity.java:121) 

Пробовал все шаги, предлагаемые в переполнении стека, но они не помогли.AppCompat and Fragment не работает

Он работает без ошибок в 4.0+, но в 2.3.x устройствах его дает java.lang.NoClassDefFoundError в

line 242: fragment = new HomeFragment(); 

Мой импорт из фрагментов являются:

import android.app.Fragment; 
import android.app.FragmentManager; 

и я с помощью:

FragmentManager fragmentManager = getFragmentManager(); 
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit(); 

Вот мой дом фрагмент:

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class HomeFragment extends Fragment {   
    public HomeFragment(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

      View rootView = inflater.inflate(R.layout.layout_main_fragment,container, false); 

      return rootView; 
    } 
} 

Проведенное все утро уже пытается решить эту проблему. до сих пор не повезло. Любая помощь высоко ценится.

Благодаря

ответ

21

Вы должны использовать Fragment из библиотеки поддержки.

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 

Вы также должны использовать getSupportFragmentManager() и так как вы используете AppCompat вашей деятельности должны распространяться ActionbarActivity.

FragmentManager fragmentManager = getSupportFragmentManager(); 

Update:

ActionBarActivity осуждается использование AppCompatActivity из библиотеки поддержки. Не забудьте обновить свой репозиторий поддержки до последней версии.

+0

И теперь вам нужно расширить приложение «AppCompatActivity». 'ActionBarActivity' устарел. –

+0

Конечно, вам необходимо расширить appcompact activity – Raghunandan

1

Я сталкивался с таким же вопросом и решить его поддержки импорта библиотекой и использовал

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 

Вместо этого

import android.app.Fragment; 
import android.app.FragmentManager; 
1

Попробуйте этот код Импорта:

import android.support.v4.app.Fragment; 

и использовать

Fragment fragment = new HomeFragment(); 
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.layout.layout_main_fragment, fragment).commit(); 
Смежные вопросы