6

Mój projekt działał poprawnie tuż przed zaktualizowaniem do wsparcia projektowania Android 22.2.1, po aktualizacji i uruchomieniu programu pojawia się poniższy błąd. Wyjątek nie informuje, która linia kodu lub plik Java powoduje błąd, więc nie wiesz, jaki kod wysłać do. Wydaje się, że wystąpił jakiś błąd wewnętrzny w obsłudze projektów Android.Uzyskiwanie wyjątku Nullpointer po aktualizacji do wsparcia projektowania Android 22.2.1

Moja działalność rozszerza się o AppCompatActivity i moje urządzenie testowe API 15 (Android 4.04).

Używam w moim kodzie NavigationView i DrawerLayout.

Moja build.gradle

android { 
compileSdkVersion 22 
buildToolsVersion "22.0.1" 

defaultConfig { 
    applicationId "com.stackoverflow.ranjith.androidprojdel" 
    minSdkVersion 15 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:22.2.+' 
compile 'com.parse.bolts:bolts-android:1.+' 
compile 'com.android.support:cardview-v7:22.2.+' 
compile 'com.android.support:recyclerview-v7:22.2.+' 
compile 'com.google.android.gms:play-services-plus:7.5.0' 
compile 'com.google.android.gms:play-services-ads:7.5.0' 
compile 'com.android.support:design:22.2.+' 
compile 'joda-time:joda-time:2.8.1' 
} 

Wyjątek:

07-19 00:52:49.338: E/AndroidRuntime(15556): FATAL EXCEPTION: main 
07-19 00:52:49.338: E/AndroidRuntime(15556): java.lang.NullPointerException 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.support.design.internal.NavigationMenuItemView.setIcon(NavigationMenuItemView.java:113) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.support.design.internal.NavigationMenuItemView.initialize(NavigationMenuItemView.java:72) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.getView(NavigationMenuPresenter.java:305) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.AbsListView.obtainView(AbsListView.java:2045) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.ListView.makeAndAddView(ListView.java:1772) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.ListView.fillDown(ListView.java:672) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.ListView.fillFromTop(ListView.java:732) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.ListView.layoutChildren(ListView.java:1625) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.AbsListView.onLayout(AbsListView.java:1875) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.FrameLayout.onLayout(FrameLayout.java:444) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:931) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.FrameLayout.onLayout(FrameLayout.java:444) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1653) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1511) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.onLayout(LinearLayout.java:1416) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.FrameLayout.onLayout(FrameLayout.java:444) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1653) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1511) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.LinearLayout.onLayout(LinearLayout.java:1416) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.widget.FrameLayout.onLayout(FrameLayout.java:444) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.View.layout(View.java:11390) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewGroup.layout(ViewGroup.java:4332) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1490) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2455) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.os.Looper.loop(Looper.java:137) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at android.app.ActivityThread.main(ActivityThread.java:4424) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at java.lang.reflect.Method.invokeNative(Native Method) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at java.lang.reflect.Method.invoke(Method.java:511) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
07-19 00:52:49.338: E/AndroidRuntime(15556): at dalvik.system.NativeStart.main(Native Method) 

Aktualizacja

Kiedy wycofać do 22.2.0 znika błąd, nie wiem co to jest problem.

+0

Aktualizacja 22.2.1 została wydana? – Eenvincible

+0

@zwyciężony tak, wczoraj: https://plus.google.com/+AndroidDevelopers/posts/XTtNCPviwpj – Mikhail

+0

Tak ... wraz z nim nowe problemy. W ubiegłym tygodniu napotkałem inny problem, gdy zaktualizowałem bibliotekę do nowej wersji i mam teraz nowe problemy. – Psypher

Odpowiedz

8

Problem jest związany z xml menu NavigationView.

Kopalnia wygląda następująco:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:id="@+id/navigation_subheader" 
      android:title="Titulo"> 
     <menu> 
      <item 
        android:id="@+id/navigation_sub_item_1" 
        android:icon="@drawable/abc_btn_radio_material" 
        android:title="sub-1"/> 
      <item 
        android:id="@+id/navigation_sub_item_2" 
        android:icon="@drawable/abc_btn_rating_star_on_mtrl_alpha" 
        android:title="sub-2"/> 
     </menu> 
    </item> 
</menu> 

ale jeśli mogę przełączyć na rozciągliwej ikonę projektu, jego stałe:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:id="@+id/navigation_subheader" 
      android:title="Titulo"> 
     <menu> 
      <item 
        android:id="@+id/navigation_sub_item_1" 
       ----> android:icon="@drawable/some_local_drawable" 
        android:title="sub-1"/> 
      <item 
        android:id="@+id/navigation_sub_item_2" 
       ----> android:icon="@drawable/some_local_drawable" 
        android:title="sub-2"/> 
     </menu> 
    </item> 
</menu> 

Oczywiście, zdarza się to po aktualizacji do 22.2.1

+0

Pozwól mi to wypróbować. +1 za odpowiedź. – Psypher

+0

To działa. Dzięki. Będzie czekać na kolejną aktualizację i problemy z tą aktualizacją :) – Psypher

+2

Nigdy nie powinieneś używać ikon 'abc_'. Zawsze dostarczaj własne, to poza biblioteką. –

0

Miałem ten sam problem i udało mi się tego uniknąć za pomocą tego kodu:

View header = LayoutInflater.from(this).inflate(R.layout.nav_header_main, null); 
navigationView.addHeaderView(header); 
TextView text = (TextView) header.findViewById(R.id.textView); 
texto.setText("HELLO"); 
Powiązane problemy