On Oct 21, 10:24 pm, Streets Of Boston <[email protected]>
wrote:
> That's why i put 'official' in quotes :-)
>
> One should not manipulate windows/views in any other thread than the
> main UI-thread (e.g. textView.setText(...) or imageView.setImageBitmap
> (...), hiding/showing views, etc.). If you do this in a background
> thread, then you may get exceptions or other weird behavior.
>
> If 'inflating a view' falls under the 'manipulating windows/views'
> category then one should not inflate views inside any other thread by
> the main UI-thread.
>
You are right. I finally got a report yesterday from one of the users
that a modified apk that does view inflating in GUI thread, doesn't
give this problem. I have released the fix accordingly and got one
more user confirming that it's working for him now.
So thanks for the advice. Inflating view in a thread other than GUI
thread, indeed seems to be unsupported, even if it doesn't throw any
explicit exception deterministically.
> I'm just saying: try to do the inflate in the main UI-thread and check
> if this solves the problem for HTC Heros. If so, your particular
> problem is fixed.
>
> On Oct 21, 11:34 am, Jayesh Salvi <[email protected]> wrote:
>
> > --
> > Jayesh...
>
> > read more »
>
> > On Wed, Oct 21, 2009 at 7:39 PM, Streets Of Boston
> > <[email protected]>wrote:
>
> > > I still would try to inflate your view inside your main gui-thread and
> > > not in a seperate background thread.
>
> > > The fact that it works on other phones does not guarantee it works on
> > > all phones, if inflating views on non-gui threads is 'officially' not
> > > supported.
>
> > Could you elaborate on how it is 'officially' not supported?
>
> > I know that a particular exception is thrown if the framework finds that a
> > different thread is trying to manipulate widgets in view hierarchy.(I hit it
> > yesterday elsewhere in the code, and it is not the same as this error). I
> > haven't found any documentation in this matter, that mentions what is
> > supported/forbidden practice in this matter. Did I miss something?
>
> > > Who knows, it may fix it (if you already haven't tried it). :-)
> > > But i may be wrong...
>
> > > On Oct 20, 11:57 pm, Jayesh Salvi <[email protected]> wrote:
> > > > Thanks Shane and Amir for confirming the doubts.
> > > > It's frustrating that all I can say to users is to wait until Sprint/HTC
> > > > issues firmware update, then hopefully the problem will be fixed. The
> > > users
> > > > are willing to test if I have any fix, but I can't find root cause even
> > > > after looking inside the android code, let alone a fix/workaround.
>
> > > > Does anyone know if Sprint or HTC have any channels to report
> > > > complaints?
> > > > Are there any means to know when they will issue next firmware update?
>
> > > > IIUC Sprint HTC Hero is "with Google" branded phone. I would have
> > > > assumed
> > > it
> > > > would be the one with most conformance to Android platform; one that has
> > > > passed all test suites required to qualify for the "with Google" logo.
> > > Yet
> > > > we see these anomalies. :(
>
> > > > --
> > > > Jayesh
>
> > > > On Mon, Oct 19, 2009 at 1:15 PM, Amir Alagic <[email protected]> wrote:
>
> > > > > I saw somwhere else that one developer also has problems only with HTC
> > > > > Hero (Sprint) ...
>
> > > > > On Oct 18, 9:48 am, Shane <[email protected]> wrote:
> > > > > > We are having problems only with HTC Hero phones as well. Our issue
> > > > > > is different that yours but it is very disappointing to see not all
> > > > > > phones handle the SDK the same.
>
> > >http://groups.google.com/group/android-developers/browse_thread/threa...
>
> > > > > > I suspect this is just going to get worse as more branded android
> > > > > > experiences get released by manufacturers. GRRRRRRRR
>
> > > > > > On Oct 12, 9:46 pm, Jayesh Salvi <[email protected]> wrote:
>
> > > > > > > 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/.
> > > ..
> > > > > > > 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 <
> > > [email protected]>
> > > > > wrote:
>
> > > > > > > > --
> > > > > > > > Jayesh
>
> > > > > > > > On Mon, Oct 12, 2009 at 7:49 PM, Streets Of Boston <
> > > > > > > > [email protected]> 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 <[email protected]>
> > > wrote:
> > > > > > > >> > --
> > > > > > > >> > Jayesh
>
> > > > > > > >> > On Mon, Oct 12, 2009 at 1:11 AM, Romain Guy <
> > > [email protected]
>
> > > > > > > >> 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 <
> > > > > [email protected]
>
> > > > > > > >> > > 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.
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---