Void android.support.v4.app.Fragment.setMenuVisibility (boolean) 'auf eine Nullobjektreferenz

Der Fehler fing an, erst nach dem Beginn der Verwendung von Fragmenten im Projekt zu erscheinen

Hier ist mein code ..

  • Header von Response (Retrofit / OkHttp Client)
  • Ist es möglich, immer die Aktionsleiste anzuzeigen, wenn Sie adjustPan als Soft-Eingabemodus verwenden?
  • Typ Der Container 'Android Dependencies' verweist auf nicht vorhandene Bibliothek android-support-v7-appcompat / bin / android-support-v7-appcompat.jar
  • Nest Thermostat Temperatur nicht immer aktualisiert
  • "Die Art Galerie ist veraltet", was ist die beste Alternative?
  • Cordova / Phonegap: Live Update Codebase
  • public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private ViewPager mPager; private SlidingTabLayout mTabs; private MyPagerAdapter adapter; public static final int product_result = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); assert getSupportActionBar() != null; getSupportActionBar().setDisplayShowHomeEnabled(true); NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_nav_drawer); navigationDrawerFragment.setUp(R.id.fragment_nav_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar); mPager = (ViewPager) findViewById(R.id.pager); adapter = new MyPagerAdapter(getSupportFragmentManager()); mPager.setAdapter(adapter); mTabs = (SlidingTabLayout) findViewById(R.id.tabs); mTabs.setDistributeEvenly(true); mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText); int bgColor = ContextCompat.getColor(this, R.color.colorPrimary); mTabs.setBackgroundColor(bgColor); mTabs.setSelectedIndicatorColors(ContextCompat.getColor(MainActivity.this, R.color.colorAccent)); mTabs.invalidate(); mTabs.setViewPager(mPager); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } if (id == R.id.navigate) { startActivity(new Intent(this, SubActivity.class)); } if (id == R.id.TabActivity) { startActivity(new Intent(this, ActivityUsingTabLibrary.class)); } if (id == R.id.VectorTest) { startActivity(new Intent(this, VectorTestActivity.class)); } return super.onOptionsItemSelected(item); } class MyPagerAdapter extends FragmentStatePagerAdapter { int icons[] = {R.drawable.home, R.drawable.hot_article, R.drawable.dizzy_person}; public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = null; switch(position){ case product_result: fragment = FragmentProduct.newInstance("",""); break; } return fragment; } @Override public CharSequence getPageTitle(int position) { Drawable drawable = ResourcesCompat.getDrawable(getResources(), icons[position], null); drawable.setBounds(0, 0, 36, 36); ImageSpan imageSpan = new ImageSpan(drawable); SpannableString spannableString = new SpannableString(" "); spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableString; } @Override public int getCount() { return 3; } } 

    }

    Das ist mein Fragment.Klasse, wo ich jornObject Toast passiere.

     public class FragmentProduct extends Fragment { public static final String product_url = "http://oasisgroups.com/oApp/product.php"; private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private String mParam1; private String mParam2; private VolleySingleton volleySingleton; private ImageLoader imageLoader; private RequestQueue requestQueue; public FragmentProduct() { // Required empty public constructor } public static FragmentProduct newInstance(String param1, String param2) { FragmentProduct fragment = new FragmentProduct(); Bundle args = new Bundle(); args.putString(ARG_PARAM1, param1); args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } public static String getRequestUrl(int limit) { return product_url + "&limit=" + limit; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } volleySingleton = VolleySingleton.getInstance(); requestQueue = volleySingleton.getmRequestQueue(); JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, getRequestUrl(10), new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Lt(getActivity(), response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); requestQueue.add(request); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_product, container, false); } 

    }

    StackTrace

     02-29 12:10:01.047 17100-17100/com.mydesign.rockstar.materialdesignexample E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mydesign.rockstar.materialdesignexample, PID: 17100 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.app.Fragment.setMenuVisibility(boolean)' on a null object reference at android.support.v4.app.FragmentStatePagerAdapter.instantiateItem(FragmentStatePagerAdapter.java:116) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:870) at android.support.v4.view.ViewPager.populate(ViewPager.java:1086) at android.support.v4.view.ViewPager.populate(ViewPager.java:952) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474) at android.view.View.measure(View.java:18804) at android.widget.LinearLayout.measureVertical(LinearLayout.java:901) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18804) at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940) at android.view.View.measure(View.java:18804) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) at android.view.View.measure(View.java:18804) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18804) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:18804) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18804) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643) at android.view.View.measure(View.java:18804) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2112) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1228) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1464) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1119) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6060) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:606) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:746) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 

    Ich habe auch das gleiche Problem in diesem Link gesehen und ich wenden seine Lösung an, aber es wird nicht für mich arbeiten. Im immer noch stecken, hilf mir. Also überprüfen Sie meinen Code und schlagen Sie mir vor, wo ich fehlt

  • Zugriff auf Android NotificationListenerService-Einstellungen
  • Wie kann ich javadoc für die Android-Support-Bibliothek aktivieren?
  • Wie POST rohe ganze JSON in den Körper einer Retrofit Anfrage?
  • Schreiben von Gradle-Skript, um Unit-Testfälle für Eclipse Android Test-Projekt auszuführen
  • Wie man usb-connect Android-Geräte mit Adb unter ubuntu
  • Javax.net.ssl.SSLException: hostname im Zertifikat stimmt nicht mit android überein
  • 2 Solutions collect form web for “Void android.support.v4.app.Fragment.setMenuVisibility (boolean) 'auf eine Nullobjektreferenz”

    Oh ja .. ich habe endlich meinen Fehler gefunden .. Zuerst gibt es keinen Fehler in meinem Code. alles ist richtig.

    Ich habe drei Tab-Layout und im passing nur für eine tablayout und andere zwei bekommen null, so muss ich müssen drei switch case-Anweisung gelten.

      public Fragment getItem(int position) { Fragment fragment = null; switch(position){ case product_result: fragment = FragmentProduct.newInstance("",""); break; } return fragment; } 

    stattdessen

      public Fragment getItem(int num) { Fragment fragment = null; switch (num) { case TAB_PRODUCT_RESULT: fragment = FragmentProduct.newInstance("", ""); break; case TAB_SECOND: fragment = MyFragment.getInstance(num); break; case TAB_THIRD: fragment = MyFragment.getInstance(num); break; } return fragment; } 

    das ist es..

    Ich denke, das Problem ist in der public Fragment getItem(int position) Methode von Ihrem MyPagerAdapter . Ihr Code-Snippet unten ist die Rückgabe von null Fragmenten.

     Fragment fragment = null; switch(position){ case product_result: fragment = FragmentProduct.newInstance("",""); break; } return fragment; 

    Sie erhalten nur ein echtes Fragment für die Position 0 , da product_result auf 0 initialisiert wird. In allen anderen Fällen gibt es null zurück. Ändern Sie das obige Snippet von Code, um immer eine Fragmentinstanz zurückzugeben, die nicht null ist.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.