Pytanie AppCompat i Fragment nie działają


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)

Próbowałem każdego kroku sugerowanego w przepełnieniu stosu, ale one nie pomogły.

Działa bezbłędnie w wersji 4.0+, ale w urządzeniach 2.3.x daje java.lang.NoClassDefFoundError w

line 242: fragment = new HomeFragment();

Mój import z fragmentów to:

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

i używam:

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

Oto mój fragment domu:

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;
    }
 }

Spędziłem cały ranek już próbując to rozwiązać. wciąż nie ma szczęścia. Każda pomoc jest wysoko ceniona.

Dzięki


14
2018-02-19 06:49


pochodzenie




Odpowiedzi:


Powinieneś użyć Fragment z biblioteki wsparcia.

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

Musisz również użyć getSupportFragmentManager() i od kiedy używasz AppCompat twoja działalność musi się rozciągać ActionbarActivity.

 FragmentManager fragmentManager = getSupportFragmentManager();

Aktualizacja:

ActionBarActivity jest przestarzałe AppCompatActivity z biblioteki wsparcia. Nie zapomnij zaktualizować swojego repozytorium pomocy technicznej do najnowszego.


21
2018-02-19 06:51



A teraz musisz przedłużyć z AppCompatActivity. ActionBarActivity jest przestarzałe. - Faizan Mubasher
Z pewnością musisz rozszerzyć aktywność appcompact - Raghunandan


Zmierzyłem ten sam problem i rozwiązałem go importuj bibliotekę wsparcia i używane

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

Zamiast

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

1
2018-02-19 06:53





Wypróbuj ten kod Import:

import android.support.v4.app.Fragment;

I użyć

    Fragment fragment = new HomeFragment();
    android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().replace(R.layout.layout_main_fragment, fragment).commit();

1
2018-02-19 06:57