调用getInflater()方法时得到StackOverflowError异常。我试图调用该方法并将其传递给另一个对象来调用View arg3 = inflater.inflate(R.layout.lastrow_layout,null)方法。所以为什么这种类型错误发生了,我该如何解决呢?或者有没有办法在没有传递inflater对象的情况下做同样的事情? 这是错误日志。
GC_FOR_ALLOC freed 88K, 9% free 2645K/2884K, paused 73ms, total 89ms
threadid=1: stack overflow on call to Lcom/example/ikmantest2/MainActivity;.getInf later:L method requires 8+20+4=32 bytes, fp is 0x4364f318 (24 left) expanding stack end (0x4364f300 to 0x4364f000) Shrank stack (to 0x4364f300, curFrame is 0x43654ec4) Shutting down VM threadid=1: thread exiting with uncaught exception (group=0x40a71930) GC_CONCURRENT freed 12K, 5% free 3146K/3304K, paused 77ms+79ms, total 249ms
09-07 08:40:57.719: D/dalvikvm(1155): WAIT_FOR_CONCURRENT_GC blocked 13ms
FATAL EXCEPTION: main
java.lang.StackOverflowError atcom. example. ikmantest2. MainActivity.getInflater(MainActivity.java:253)
这是代码给出错误。(在Activity_Main.java中)
public LayoutInflater getInflater() {
return getInflater();
}
这个Inflater对象在另一个类中使用;
View arg3=inflater.inflate(R.layout.lastrow_layout, null)
答案 0 :(得分:2)
该函数正在调用自身,这就是堆栈溢出的原因。
你可能想要像
这样的东西public LayoutInflater getInflater() {
return (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
this
是有效的Context
。
答案 1 :(得分:1)
LayoutInflater mInflater;
View arg3 = mInflater.inflate(R.layout.lastrow_layout, null);
试试这个。希望它能起作用。