NPE lors du gonflage de la mise en page (Essayez d'invoquer la méthode virtuelle 'java.lang.String.equals (java.lang.Object)' sur une référence d'objet nulle

Je continue d'avoir un java.lang.NullPointerException lorsque j'essaie d'utiliser ScrollView dans une activité.

Le plus étrange, c'est que j'ai utilisé exactement la même configuration Scrollview dans d'autres activités. Et tout à coup, j'ai des erreurs. J'ai essayé de nettoyer le projet et de reconstruire.

  • Comment dessiner un cercle transparent?
  • Android Java crée un bitmap à partir de la valeur hexadécimale
  • NoSuchMethodError com.google.android.gms.internal.gf
  • Prendre de l'image à partir d'une caméra personnalisée est étirée lorsque vous enregistrez dans ImageView
  • Flash vidéo ne s'affiche pas dans WebView pour Android 3.0.1
  • Android: tirant sur la marge et / ou le rembourrage
  • Et j'ai essayé le bon vieux recommencer le programme. J'ai beaucoup appris sur les exceptions Null Pointer, mais je n'ai pas été en mesure de comprendre pourquoi je continue d'avoir des problèmes de rendu .

    C'est l' java.lang.NullPointerException qui est lancée sur le XML:

     java.lang.NullPointerException at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:738) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:149) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:838) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498) at com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72) at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610) at com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607) at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362) at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607) at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:652) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1700(AndroidLayoutPreviewToolWindowManager.java:80) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:594) at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:589) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:351) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 

    Donc, rien de tout cela n'est un code que j'ai écrit. Donc, j'ai pénétré dans la trace de la pile et trouvé ceci:

      java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:715) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) at android.app.Activity.setContentView(Activity.java:2145) at com.mitchellpalermo.tutroubleshooting.ContactPage.onCreate(ContactPage.java:11) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

    Ce qui pointe vers la ligne 11 sur le fichier Contact.java . Ce qui ressemble à ceci (j'ai mis des indicateurs autour de la ligne 11):

      package com.mitchellpalermo.tutroubleshooting; import android.app.Activity; import android.os.Bundle; public class Contact extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); // line 11 } } 

    Je ne vois pas un problème avec la ligne 11 .

    Maintenant, je ne peux pas comprendre ce qui ne va pas avec mon code. Entre les problèmes de rendu et NullPointerExceptions , je ne peux pas comprendre ce qui est réellement incorrect avec mon code.

    Il s'agit d'un exemple de XML dans une activité dans laquelle ScrollView ne lance aucune erreur:

     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" tools:context="com.mitchellpalermo.tutroubleshooting.ComputerOrProjector"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical"> <TextView style="@style/HeaderStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/solutions" android:textStyle="bold" /> <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="15dp" card_view:cardBackgroundColor="#FFFFFF" card_view:cardCornerRadius="4dp" card_view:cardElevation="5dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView style="@style/Solution" android:text="@string/pc_v_fifth" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@android:color/darker_gray" /> <TextView style="@style/Solution" android:text="@string/pc_v_first" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@android:color/darker_gray" /> <TextView style="@style/Solution" android:text="@string/pc_v_second" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@android:color/darker_gray" /> <TextView style="@style/Solution" android:text="@string/pc_v_third" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@android:color/darker_gray" /> <TextView style="@style/Solution" android:text="@string/pc_v_fourth" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@android:color/darker_gray" /> </LinearLayout> </android.support.v7.widget.CardView> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button style="@style/NextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="sendEmail" android:text="@string/fixed" android:textStyle="bold" /> <Button style="@style/NextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="notFixedButton" android:text="@string/not_fixed" android:textStyle="bold" /> </LinearLayout> </LinearLayout> </ScrollView> 

    Et voici l' activité dans laquelle je reçois des erreurs:

     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="false"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView style="@style/HeaderStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/still_not_fixed" /> <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="15dp" card_view:cardBackgroundColor="#FFFFFF" card_view:cardCornerRadius="4dp" card_view:cardElevation="5dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hector" /> <view android:layout_width="match_parent" android:layout_height="2dp" android:backgroundTint="@android:color/darker_gray" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/robert" /> <view android:layout_width="match_parent" android:layout_height="2dp" android:backgroundTint="@android:color/darker_gray" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/mitch" /> </android.support.v7.widget.CardView> </LinearLayout> </ScrollView> 

    Aucune suggestion? Et merci beaucoup d'avance!

  • Générer un studio d'Android apk signé
  • Installation du plugin ADT dans Eclipse pour le développement Android
  • Comment lire les fichiers audio directement à partir du dossier res / raw?
  • Filtrage personnalisé ArrayAdapter dans ListView
  • Changement de bibliothèque de gestion de réflexion Java
  • Ne peut pas accéder à DialogStyle
  • 2 Solutions collect form web for “NPE lors du gonflage de la mise en page (Essayez d'invoquer la méthode virtuelle 'java.lang.String.equals (java.lang.Object)' sur une référence d'objet nulle”

    Changez <view to <View , car la view ne concerne pas la vue vide . C'est pour la vue personnalisée définie par l'attr de class , comme ci-dessous:

     <view android:layout_width="wrap_content" android:layout_height="wrap_content" class="com.your.package.YourCustomView" /> 

    Et vous avez

     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference 

    À cause de LayoutInflater essaie d'analyser class attr:

    LayoutInflater source LayoutInflater

     //... View createViewFromTag(View parent, String name, Context context, AttributeSet attrs, boolean ignoreThemeAttr) { if (name.equals("view")) { // line 724 name = attrs.getAttributeValue(null, "class"); // line 725 } // Apply a theme wrapper, if allowed and one is specified. if (!ignoreThemeAttr) { final TypedArray ta = context.obtainStyledAttributes(attrs, ATTRS_THEME); final int themeResId = ta.getResourceId(0, 0); if (themeResId != 0) { context = new ContextThemeWrapper(context, themeResId); } ta.recycle(); } if (name.equals(TAG_1995)) { // line 738 // Let's party like it's 1995! return new BlinkLayout(context, attrs); } //... 
    • En ligne 724, il vérifie que votre balise est view et qu'elle se true
    • En ligne 725, il essaie d'obtenir une classe à travers l'attr de class et obtient null
    • À la ligne 738, il essaie de vérifier l'étiquette de blink et de s'effondrer

    En outre, il y a une chose curieuse, les développeurs Android ont ajouté l'oeuf de Pâques, vous pouvez l'essayer:

     <view android:layout_width="wrap_content" android:layout_height="wrap_content" class="blink"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Some text" /> </view> 

    Après 2 jours, j'ai résolu ce problème. Utilisez View au lieu de voir

     <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#faf4f4"></View> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.