在膨胀布局时尝试NPE(尝试在空对象引用上调用虚方法'boolean java.lang.String.equals(java.lang.Object)'java.lang.NullPointerException当我尝试ScrollView在活动中使用时,我会不断获得。奇怪的是,我Scrollview在其他活动中使用了完全相同的设置。突然之间,我遇到了错误。我试过清理项目并重建。而且我已经尝试了这个好老的重启程序。我今天学到了很多关于Null Pointer Exceptions的知识,但是我还没弄清楚为什么我一直在学习渲染问题。所以,这些都不是我写的代码。所以我潜入堆栈跟踪并发现: 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)有什么建议?非常感谢你!
2 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
更改<view
到<View
,因为view
是不是空的观点。这是通过class
attr 定义的自定义视图,如下所示:
<view android:layout_width="wrap_content" android:layout_height="wrap_content" class="com.your.package.YourCustomView" />
而你得到了
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
因为LayoutInflater
试图解析class
attr:
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); }//...
上线724就检查标签的
view
,并得到true
在第725行,它尝试通过
class
attr 获取课程并获取null
在第738行,它尝试检查
blink
标记并崩溃
此外,有一个奇怪的事情,Android开发人员添加了复活节彩蛋,你可以试试:
<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>
慕姐8265434
TA贡献1813条经验 获得超2个赞
2天后我解决了这个问题使用View而不是view
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="#faf4f4"></View>
- 2 回答
- 0 关注
- 741 浏览
添加回答
举报
0/150
提交
取消