Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Android tem limite de Views por layout?

Bom dia,


Não consegui fazer todos os testes sugeridos ontem, mas consegui resolver o problema.
Basicamente, troquei a lib CardsUI pois nessa tela que estava desenvolvendo não precisaria de nenhuma função específica dela. Só aproveitei o layout, e fiz com um listview.

Quando tiver mais tempo eu testo as sugestões.

Obrigado a todos pelas respostas.


Atenciosamente,
Rafael Barrelo


Em 26 de março de 2013 13:47, Rafael Barrelo <rafaelbarrelo@gmail.com> escreveu:
Vlw Jade Costa,
Vou tentar fazer isso também.

Obrigado

Atenciosamente,
Rafael Barrelo


Em 26 de março de 2013 12:39, Jade Costa <jademcosta@gmail.com> escreveu:

Faz tb um outro teste :) Crie um layout limpo (em outro app android) e vai adicionando views nele.
No mínimo vc vai ter um número :)

Mas, tb achei estranho dar stackoverflow por causa de número de views...


Em 26 de março de 2013 10:10, Rafael Barrelo <rafaelbarrelo@gmail.com> escreveu:

Então... o problema não é uma "recursão infinita" pois quando eu uso um layout mais simples para o card ele carrega de boa.
Estava vendo a lib CardUI que utilizo e percebi que o erro ocorre quando ele chama o método refresh() pra desenhar os cards na tela. Fui verificar o que esse método faz e vi que ele cria uma table view e vai adicionando os cards que eu defini nas linhas, porém ele cria uma view vazia (Space) entre uma linha e outra.
Acho que com isso, ele está estourando a memória do aparelho, por isso o Overflow.
Não estou em casa agora, mas vou tentar carregar essas views como um List, sem usar o CardUI pra ver se da certo.
Também vou fazer um teste com AsyncTask.
Qualquer novidade eu aviso.

Obrigado a todos pela ajuda.


Atenciosamente,
Rafael Barrelo


Em 26 de março de 2013 08:22, Diogo Henrique <diogjp10@gmail.com> escreveu:

Se você colocasse tudo toda essa atualização da UI em um AsyncTask, será que daria certo ? viajei eu acho kkkk

Diogo Henrique
(83)87344178
Rede Sociais: 






Em 26 de março de 2013 01:40, Jonas Alves <jonasfa@gmail.com> escreveu:

Apesar de truncado, no final do log já aparece a PhoneWindow...
Estranho, o stack não me parece grande o suficiente pra causar um Stack Overflow...

On Mar 25, 2013 9:35 PM, "Jonas Alves" <jonasfa@gmail.com> wrote:

Lendo o stack trace não consegui identificar o motivo.
Você consegue colar o log completo aqui? Ele me parece truncado.

On Mar 25, 2013 8:54 PM, "Jonas Alves" <jonasfa@gmail.com> wrote:

O erro é auto-explicativo: stack overflow. Muito provavelmente ele é consequência de uma recursão infinita.

On Mar 25, 2013 8:22 PM, "Rafael Barrelo" <rafaelbarrelo@gmail.com> wrote:
Boa noite galera, tudo bem?!

Gostaria de saber se o Android tem algum limite de views por layout.

Estou criando uma aplicação e uso algumas bibliotecas externas.
- https://github.com/jfeinstein10/SlidingMenu -> Menu lateral como Youtube
https://github.com/JakeWharton/Android-ViewPagerIndicator -> Sliding de conteúdo, como o Plume

O que acontece é o seguinte. Tenho um menu lateral (slidingmenu) e quando clico em uma opção ele infla o fragment principal com um novo fragment. Até ai blz. Mas nesse fragment eu uso o PageIndicator e instancia vários "Cards".
Se coloco um layout "simples" para o card ele carrega de boa, mas se coloco um layout um pouco mais complexo, com vários linearlayout, img, textview etc... ele da force close. (StackOverflowError)
Isso só ocorre com versões "antigas" < 4.0.
Estou achando que ele tem algum limite de views por layout, mas não achei nada da documentação. 
Quando carrego os cards direto, sem o PageIndicator, ele funciona normalmente.
Alguma ideia do que pode ser?

O logcat do erro é: 

03-26 00:18:08.895: I/dalvikvm(245): Stack overflow, expanding (0x42089200 to 0x42089000)
03-26 00:18:08.904: I/dalvikvm(245): Shrank stack (to 0x42089200, curFrame is 0x4208bc64)
03-26 00:18:08.914: D/AndroidRuntime(245): Shutting down VM
03-26 00:18:08.914: W/dalvikvm(245): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
03-26 00:18:08.914: E/AndroidRuntime(245): Uncaught handler: thread main exiting due to uncaught exception
03-26 00:18:08.964: E/AndroidRuntime(245): java.lang.StackOverflowError
03-26 00:18:08.964: E/AndroidRuntime(245): at android.text.Styled.measureText(Styled.java:371)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.text.Layout.measureText(Layout.java:1601)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.text.Layout.getLineMax(Layout.java:655)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.text.Layout.draw(Layout.java:311)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.text.BoringLayout.draw(BoringLayout.java:365)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.TextView.onDraw(TextView.java:4052)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6535)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.buildDrawingCache(View.java:6295)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.getDrawingCache(View.java:6086)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1456)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1324)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.ListView.dispatchDraw(ListView.java:2972)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6641)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.AbsListView.draw(AbsListView.java:2171)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.support.v4.view.ViewPager.draw(ViewPager.java:2094)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at com.slidingmenu.lib.CustomViewAbove.dispatchDraw(CustomViewAbove.java:842)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.View.draw(View.java:6538)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.widget.FrameLayout.draw(FrameLayout.java:352)
03-26 00:18:08.964: E/AndroidRuntime(245): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1830)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewRoot.draw(ViewRoot.java:1349)
03-26 00:18:08.964: E/AndroidRuntime(245): at android.view.ViewRoot.perfo




Atenciosamente,
Rafael Barrelo

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Jade Moreira da Costa

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário