I tried to look into the android framework code (link<http://www.google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#uX1GffpyOZk/core/java/android/view/LayoutInflater.java&q=lang:java android.view.InflateException Error inflating class java.lang.reflect.Constructor&l=458>). The topmost frame refers to a 'throw' statement(line 512) that is inside a catch of a lower level exception. I can't tell what part of the createView() function throws that lower level exception. I also tried to search around for the error string "Error inflating class java.lang.reflect.Constructor", but couldn't found one with a similar stack trace. (There are known crashes with this error message caused inside android.preference.* package, but mine is a simple widget layout and not preferences, as you might have seen in the XML file I attached earlier.)
I now have 9 reports of this crash and all of them are confirmed to be using Sprint HTC Hero devices. This problem hasn't been reported on any other phone. Is it fair to assume that it's a problem in that particular ROM? If that's so, then what options do I have to resolve this issue - should I wait helplessly for HTC/Sprint's next update? Any suggestions are appreciated. Thanks. -- Jayesh On Mon, Oct 12, 2009 at 8:34 PM, Jayesh Salvi <jayeshsa...@gmail.com> wrote: > > -- > Jayesh > > > On Mon, Oct 12, 2009 at 7:49 PM, Streets Of Boston < > flyingdutc...@gmail.com> wrote: > >> >> I might be mistaken, >> But this part of the stack-trace worries me a bit: >> >> android.view.LayoutInflater.inflate(LayoutInflater.java:276) >> com.altcanvas.readerscope.ItemDetails.<init>(ItemDetails.java: >> 145) >> com.altcanvas.readerscope.ItemDetails.getInstance(ItemDetails.java: >> 566) >> com.altcanvas.readerscope.ReaderTask.doInBackground >> (ReaderTask.java:1027) >> >> Are you inflating a view in a background-thread and not in the main >> gui-thread? >> But then again, your code works on other Android phones.... >> > > Yes that's true. The layout is inflated in background thread, but is made > part of the root hierarchy (setContentView) only in the GUI thread. > > This doesn't give any problem on emulator or any other phones. > > >> >> On Oct 12, 12:02 am, Jayesh Salvi <jayeshsa...@gmail.com> wrote: >> > -- >> > Jayesh >> > >> > On Mon, Oct 12, 2009 at 1:11 AM, Romain Guy <romain...@google.com> >> wrote: >> > >> > > Hi, >> > >> > > The stack trace you showed is not useful. This is the top of the >> > > exception chain, which means this exception was caused by something >> > > else. Please show the "application specific stack frames" you removed. >> > >> > The complete stack trace is: >> > >> > --------- Cause --------- >> > >> > android.view.InflateException: Binary XML file line #27: Error inflating >> > class java.lang.reflect.Constructor >> > >> > android.view.LayoutInflater.createView(LayoutInflater.java:512) >> > >> > >> com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) >> > >> android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562) >> > android.view.LayoutInflater.rInflate(LayoutInflater.java:617) >> > android.view.LayoutInflater.rInflate(LayoutInflater.java:620) >> > android.view.LayoutInflater.rInflate(LayoutInflater.java:620) >> > android.view.LayoutInflater.inflate(LayoutInflater.java:407) >> > android.view.LayoutInflater.inflate(LayoutInflater.java:320) >> > android.view.LayoutInflater.inflate(LayoutInflater.java:276) >> > com.altcanvas.readerscope.ItemDetails.<init>(ItemDetails.java:145) >> > >> com.altcanvas.readerscope.ItemDetails.getInstance(ItemDetails.java:566) >> > >> > >> com.altcanvas.readerscope.ReaderTask.doInBackground(ReaderTask.java:1027) >> > >> com.altcanvas.readerscope.ReaderTask.doInBackground(ReaderTask.java:21) >> > com.altcanvas.readerscope.UserTask$2.call(UserTask.java:187) >> > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256) >> > java.util.concurrent.FutureTask.run(FutureTask.java:122) >> > >> > >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:648) >> > >> > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:673) >> > java.lang.Thread.run(Thread.java:1058) >> > ------------------------------- >> > >> > The code around line 145 in ItemDetails.java is: >> > >> > 144. widerContainer = new LinearLayout(app); >> > >> > 145. widerContainer.addView((LinearLayout) inflater >> > >> > 146. .inflate(R.layout.delcs,null), layoutFW); >> > >> > 147. widerContainer.addView((LinearLayout) inflater >> > >> > 148. .inflate(R.layout.digg,null), layoutFW); >> > >> > >> > >> > >> > >> > > On Sun, Oct 11, 2009 at 12:34 PM, Jayesh Salvi <jayeshsa...@gmail.com >> > >> > > wrote: >> > > > Hi, >> > > > In past couple of days, users of my app have sent crash reports >> > > indicating >> > > > errors in layout inflation. >> > > > "android.view.InflateException: Binary XML file line #27: Error >> inflating >> > > > class java.lang.reflect.Constructor" >> > > > After some investigation I found out that all four of them were >> using the >> > > > new Sprint HTC Hero devices. This error hasn't been reported on any >> other >> > > > device/ROM nor could I repro it in the emulator. >> > > > From searching around, I figured this is the kind of error that one >> gets >> > > if >> > > > layout is too big or too wide. Although my layout is very well >> within the >> > > > limits that Android framework puts, I split it further and asked the >> > > users >> > > > to test. However, even with this fix the users are seeing similar >> crash >> > > > while inflating the layout. >> > > > Has anyone else had same experience with the new Hero devices? >> > > > Any suggestions on how I can proceed to fix/workaround the issue - >> given >> > > > that I don't have access to any such device? >> > > > Following is the detailed stack trace of the crash: >> > >> > > > android.view.InflateException: Binary XML file line #27: Error >> inflating >> > > > class java.lang.reflect.Constructor >> > >> > > > android.view.LayoutInflater.createView(LayoutInflater.java:512) >> > >> > > >> com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) >> > >> > > android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562) >> > > > android.view.LayoutInflater.rInflate(LayoutInflater.java:617) >> > > > android.view.LayoutInflater.rInflate(LayoutInflater.java:620) >> > > > android.view.LayoutInflater.rInflate(LayoutInflater.java:620) >> > > > android.view.LayoutInflater.inflate(LayoutInflater.java:407) >> > > > android.view.LayoutInflater.inflate(LayoutInflater.java:320) >> > > > android.view.LayoutInflater.inflate(LayoutInflater.java:276) >> > >> > > > .... >> > >> > > > <-- application specific stack frames --> >> > >> > > > Thanks, >> > > > -- >> > > > Jayesh >> > >> > > -- >> > > Romain Guy >> > > Android framework engineer >> > > romain...@android.com >> > >> > > Note: please don't send private questions to me, as I don't have time >> > > to provide private support. All such questions should be posted on >> > > public forums, where I and others can see and answer them- Hide quoted >> text - >> > >> > - Show quoted text - >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---