Ver mensagens sem resposta | Ver tópicos ativos Hoje é 23 Mai 2013, 23:45



Responder Tópico  [ 16 Mensagens ] 
 [DICA] Usando LogCat 
Autor Mensagem
Anatomy of an App
Anatomy of an App

Data de registro: 16 Fev 2009, 21:17
Mensagens: 102
Localização: SP
Mensagem [DICA] Usando LogCat
Fala pessoal blz?
Criei este tópico para dar algumas dicas sobre o LogCat, onde os erros realmente aparecem.

Além de ser possível a visualização dos erros no LogCat, pode-se inserir "filtros", que possibilitam apenas as mensagens de sua app, e como também os erros especificamente.

Para se habilitar o LogCat no eclipse vá em, Window > Show View > Other > Android > LogCat.
No LogCat existe um sinal de + em verde, o "Create Filter", clique nele. Aparecerá uma tela chamda "Log Filter". Ela possui os campos "Filter Name", que você deve preencher com "filtro", e "by Log Tag", preencha-o com filtro. Clique em OK.

Bom, está criado o filtro para sua aplicação. Na pagina criada aparecerão apenas as mensagens difinidas por você em suas apps.
Observe o exemplo:

main.xml - este xml possui um TextView e dois Botões

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

   
    <TextView  
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Tela 1 - Exemplo de LogCat"
        android:textSize="26px"
        />

   
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    />

   
    <Button
        android:id="@+id/btnTela2NoActivity"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Tela 2 Not Activity">

    </Button>
   
    <Button
        android:id="@+id/btnTela2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Tela 2">

    </Button>
   
</LinearLayout>
 

AndroidManifest.xml - O xml raiz do projeto - lembre-se, sempre que criar uma nova classe Activity,
deve delará-la neste arquivo, ou o android gerará um erro.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="android.com.LogCat"
      android:versionCode="1"
      android:versionName="1.0.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Tela1"
                  android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
        <activity android:name=".Tela2" />
       
    </application>
</manifest>
 

Activity Tela1 - A principal do exemplo - esta Actitty implementa os dois botões, sendo que um deles
chama uma classe que não extende de Activity, então um erro será gerado no LogCat

package android.com.LogCat;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Tela1 extends Activity {
   
    private static final String FILTRO = "filtro";
       
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
       
        Button btnTela2NotActivity = (Button) findViewById(R.id.btnTela2NoActivity);
        btnTela2NotActivity.setOnClickListener(new OnClickListener(){

            /*
             *  Chamando proxima tela
             *  Neste caso, a próxima tela NÃO extende de activity, então um erro
             *  será exibido no LogCat
             */

            @Override
            public void onClick(View v)
            {   
                try
                {
                    startActivity(new Intent(Tela1.this, Tela2NotActivity.class));
                }
                catch(Throwable e)
                {
                    Log.e(FILTRO, "LOG DE ERRO: " + e.getMessage());
                }   
            }
        });
               
        Button btnTela2 = (Button) findViewById(R.id.btnTela2);
        btnTela2.setOnClickListener(new OnClickListener(){

            /*
             *  Chamando proxima tela
             *  Agora sim a próxima tela extende de activity
             *  A chamada de uma nova tela, não é uma operação que corra risco
             *  de se gerar um erro, por isso não é necessário colocar o trecho de código
             *  entre Try{}Catch(){}
             *  O Try foi usado no botão acima, apenas para exemplificar o erro
             */

            @Override
            public void onClick(View v)
            {   
                startActivity(new Intent(Tela1.this, Tela2.class));
            }
        });
    }
}
 

A suposta Activity - Tela2NotActivity

package android.com.LogCat;

public class Tela2NotActivity {
}
 

E finalmente a Activity Tela2, que será chamada corretamente - esta classe apenas exibirá na tela
um TextView com o texto "Tela 2", repare nos Logs.
O LogCat, possui 5 diferentes tipos de Logs, sendo eles:
Debug, Verbose, Info, Warm, Error. Você deve usá-los conforme a necessida em sua app. Por exemplo:
Quando se exibe uma mensagem de erro, usa-se Log.e, o log de erro. Um alerta? Log.w. Apenas uma mensagem
Informativa? Log.i...

package android.com.LogCat;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class Tela2 extends Activity {
   
    private static final String FILTRO = "filtro";
   
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
       
        TextView tv = new TextView(this);
        tv.setText("TELA 2");
       
        setContentView(tv);
       
        Log.d(FILTRO, "LOG DE DEBUG");
        Log.v(FILTRO, "LOG DE VERBOSE");
        Log.i(FILTRO, "LOG DE INFO");
        Log.w(FILTRO, "LOG DE WARM");
        Log.e(FILTRO, "LOG DE ERROR - JA APRESENTADO NO BOTAO Tela2NotActivity");
    }
}
 

Testem o código acima e verifiquem os Logs gerados. Repare que, quando a classe que gera o erro é chamada,
nenhuma mensagem aparece para o usuário, você pode resolver isso usando um alerta de confirmação, por exemplo.
Repare também, que usando o Log.e() no try{}Catch(){}, o sistema não é travado, permitindo ao usuário continuar
utilizando sua app normalmente.

Ae pessoal, está explicado como se usa o LogCat.
Espero tê-los ajudado. Isso me foi bem útil quando aprendi. /uu

Qualquer dúvida pessoal, é só postar. Ok?
Abrass e bom trabalho. /rr

_________________
Felipe Ferreira
Cel.: (19) 8816-5514

Bacharelando em Estatística - IMECC - UNICAMP
Tel.: (19) 3521 6073

Técnico em Informática - COTUCA - UNICAMP


30 Set 2009, 11:18
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 03 Fev 2008, 03:05
Mensagens: 175
Localização: Belém - Pará
Mensagem Re: [DICA] Usando LogCat
Ótimo tutorial sobre o LogCat, Felipe Ferreira, parabéns! :P

[]s


07 Out 2009, 11:39
Perfil WWW
Anatomy of an App
Anatomy of an App

Data de registro: 16 Fev 2009, 21:17
Mensagens: 102
Localização: SP
Mensagem Re: [DICA] Usando LogCat
Opa ramonrabello blz? Obrigado cara. Precisando é só pedir, a medida do possível ajudarei.
Abrass.
Até mais.

_________________
Felipe Ferreira
Cel.: (19) 8816-5514

Bacharelando em Estatística - IMECC - UNICAMP
Tel.: (19) 3521 6073

Técnico em Informática - COTUCA - UNICAMP


07 Out 2009, 17:52
Perfil
What is Android?
What is Android?

Data de registro: 16 Fev 2009, 21:26
Mensagens: 2
Mensagem Re: [DICA] Usando LogCat
Fala Felipe.

Ótimo tutorial sobre log cat.
Me ajudou bastante.
Parabéns.


09 Dez 2009, 19:29
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 16 Fev 2009, 21:17
Mensagens: 102
Localização: SP
Mensagem Re: [DICA] Usando LogCat
Opa Davisão blz?
Ooo cara vlw. Fico feliz.
Precisando de alguma coisa é só pedir. /ww
Abrass.

_________________
Felipe Ferreira
Cel.: (19) 8816-5514

Bacharelando em Estatística - IMECC - UNICAMP
Tel.: (19) 3521 6073

Técnico em Informática - COTUCA - UNICAMP


09 Dez 2009, 20:39
Perfil
Android application
Android application

Data de registro: 16 Set 2010, 17:01
Mensagens: 88
Localização: . Recife - PE
Mensagem Re: [DICA] Usando LogCat
E aew Felipe, beleza?

Antes de tudo, parabéns pelo tuto, ta bem legal e intuitivo. /zz /uu

Bom, vendo que precisando é so pedir.. eeheh! /uu
Estou com um probleminha na minha app, e não consigo compreender o LogCat.
Poderias me ajudar, cara?

Valeu, abração!

_________________
As grandes idéias surgem da observação dos pequenos detalhes.


27 Set 2010, 16:15
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 16 Fev 2009, 21:17
Mensagens: 102
Localização: SP
Mensagem Re: [DICA] Usando LogCat
Acho que sim. Posta o problema ae cara pra eu dar uma olhada noque esta acontecendo...

_________________
Felipe Ferreira
Cel.: (19) 8816-5514

Bacharelando em Estatística - IMECC - UNICAMP
Tel.: (19) 3521 6073

Técnico em Informática - COTUCA - UNICAMP


27 Set 2010, 17:52
Perfil
Android application
Android application

Data de registro: 16 Set 2010, 17:01
Mensagens: 88
Localização: . Recife - PE
Mensagem Re: [DICA] Usando LogCat
Felipe,

Este é o meu problema. O código dá erro, mas o LogCat não acusa nada. :?

viewtopic.php?f=5&t=4412

_________________
As grandes idéias surgem da observação dos pequenos detalhes.


27 Set 2010, 17:59
Perfil
Android application
Android application

Data de registro: 16 Set 2010, 17:01
Mensagens: 88
Localização: . Recife - PE
Mensagem Re: [DICA] Usando LogCat
Felipe,

Consegui resolver meu problema e entender o funcionamento do LogCat. Eu acho.. eheh! /uu
Mais uma vez parabéns!

;)

Abração e valeu, brother!

_________________
As grandes idéias surgem da observação dos pequenos detalhes.


28 Set 2010, 10:36
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 16 Fev 2009, 21:17
Mensagens: 102
Localização: SP
Mensagem Re: [DICA] Usando LogCat
Fala Alberto blz?

Cara me desculpa ae, não deu tempo de responder sua mensagem...hehehe Desculpa mesmo.

Resolveu o problema então? Parabens cara...nem ajudei nada...hehe

Qq coisa pode escrever, tento responder... /uu

Se quiser add msn essas coisas fica a vontade, tem no meu cadastro.

Abraço cara...ah, vlw.

_________________
Felipe Ferreira
Cel.: (19) 8816-5514

Bacharelando em Estatística - IMECC - UNICAMP
Tel.: (19) 3521 6073

Técnico em Informática - COTUCA - UNICAMP


28 Set 2010, 21:58
Perfil
Android application
Android application

Data de registro: 16 Set 2010, 17:01
Mensagens: 88
Localização: . Recife - PE
Mensagem Re: [DICA] Usando LogCat
Relaxa, Felipe.

Tá tranquilo!!
Valeu, brother!

/uu

_________________
As grandes idéias surgem da observação dos pequenos detalhes.


29 Set 2010, 09:36
Perfil
What is ADT?
What is ADT?

Data de registro: 14 Out 2010, 21:01
Mensagens: 26
Mensagem Re: [DICA] Usando LogCat
Olá a todos,

Estou começando a desenvolver para Android, gostaria de saber exatamente o que é o LogCat e o que ele faz.


Desde já agradeço o todos.


09 Nov 2010, 14:55
Perfil
Android application
Android application

Data de registro: 16 Set 2010, 17:01
Mensagens: 88
Localização: . Recife - PE
Mensagem Re: [DICA] Usando LogCat
Paulinho_hps escreveu:
Olá a todos,

Estou começando a desenvolver para Android, gostaria de saber exatamente o que é o LogCat e o que ele faz.


Desde já agradeço o todos.


Fala Paulinho_hps,

Cara, o LogCat nada mais é do que um "console" (se eu estiver errado, alguém me corrija, por favor), que apenas te dar o poder de visualizar toda tarefa executada pelo mobile. No caso, o emulador.
Tudo que é carregado no boot, e tudo que é carregado nos apps, você visualiza nele.
A melhor parte, é que voce pode utilizar as ferramentas dele, para depurar bugs. Ou pode até mesmo utilizar o
System.out.println();
do java, para debugar seu código, e nele (o LogCat) aparecerá o que precisas no momento de excução daquela parte do teu código.
Espero que tenha ajudado em algo, ehehe.

Como já pedi, por favor, se minha idéa sobre o LogCat estiver errada ou faltando algo, me corrijam!

/uu

Abraço à todos!

_________________
As grandes idéias surgem da observação dos pequenos detalhes.


12 Nov 2010, 10:25
Perfil
What is ADT?
What is ADT?

Data de registro: 14 Out 2010, 21:01
Mensagens: 26
Mensagem Re: [DICA] Usando LogCat
albertoLourenco,

Muito obrigado pela resposta! me tirou uma dúvida que não conseguia acha em lugar algum

:D

Vlw


12 Nov 2010, 11:42
Perfil
What is Android?
What is Android?

Data de registro: 08 Mai 2011, 23:02
Mensagens: 1
Mensagem Re: [DICA] Usando LogCat
Olá,

Muito bom o tutorial sobre LogCat. Parabéns.

Você sabe se no Eclipse é possível criar um filtro do LogCat usando caracteres coringa?

Valeu
J.


28 Jul 2011, 01:09
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 25 Out 2011, 14:53
Mensagens: 152
Mensagem Re: [DICA] Usando LogCat
Muito bom tudo cara, Ja que você ofereceu ajuda vou aceitar :lol:
Meu logcat esta aprensentando o seguinte erro ao tentar criar
uma tablerow via codigo. Obs: o mesmo codigo em um novo programa
compila perfeitamente.

ate criei um post ninguem consguiu me ajudar ainda: http://www.portalandroid.org/comunidade/viewtopic.php?f=5&t=17192

Grato,
Rafael

02-02 15:13:55.868: W/dalvikvm(2508): threadid=1: thread exiting with uncaught exception (group=0x2aac87d8)
02-02 15:13:56.478: E/AndroidRuntime(2508): FATAL EXCEPTION: main
02-02 15:13:56.478: E/AndroidRuntime(2508): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bymoncargo/com.bymoncargo.TAB_Produtos}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:2506)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:673)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.widget.TabHost.setCurrentTab(TabHost.java:345)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:138)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.view.View.performClick(View.java:2413)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.view.View$PerformClick.run(View.java:8832)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.os.Handler.handleCallback(Handler.java:587)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.os.Looper.loop(Looper.java:123)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.ActivityThread.main(ActivityThread.java:4644)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at java.lang.reflect.Method.invokeNative(Native Method)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at java.lang.reflect.Method.invoke(Method.java:521)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at dalvik.system.NativeStart.main(Native Method)
02-02 15:13:56.478: E/AndroidRuntime(2508): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.view.ViewGroup.addViewInner(ViewGroup.java:1973)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.view.ViewGroup.addView(ViewGroup.java:1868)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.view.ViewGroup.addView(ViewGroup.java:1848)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:217)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.Activity.setContentView(Activity.java:1690)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at com.bymoncargo.TAB_Produtos.onCreate(TAB_Produtos.java:54)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-02 15:13:56.478: E/AndroidRuntime(2508):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2630)
02-02 15:13:56.478: E/AndroidRuntime(2508):     ... 18 more

_________________
Grato,
Rafael


06 Fev 2012, 10:38
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 16 Mensagens ] 

Quem está online

Usuários vendo este fórum: Abraao, agtavares, alexsander.miranda, Alexsandro Tirloni, amos, Analista, andi, andreluiz, andreluzz, andrewort, antoniodourado, attomweb, augustomig, austonrd, beeshop, Biggs Darklighter, bruno.abd, Brunohc, Bruto_JPO, btminzon, C0GuM3I0, caciara, caiodemarco, Carlos Alexandre, cehills, Celso Jr., cfranca, cleber, Costa, dalmeidabr, Damiani Oliveira, Darth Maul, Deiapinh, diemesleno, Douglas Siviotti, drjunior, Emanuella, Erik Patekoski, estratec, estratecnologia, Felipe Marcondes, Fernando Cardia, fmakula, frederico.affini, fredjpa, furlanrapha, Gabriel, gamito, geeks, Gomes, gustavobarbosa, HAMSES, henrique.garcia, hopper.frf, igor_meneguzzo, itsN, JeffCF, jhonguitar, jrsilva, juliana_costa, juliaojunior, juliherms, Julio Assis, kristopher, laucode, lillian.brandao, Liviosousa, LordElfo, lucianno, Lucious, Lúcio Zanette, Marcelo Lima, marcosf63, marcosrogel, Matheus562, mauriciobreide, mmiottobarbosa, mvoto, n3t0, nfaria, nightwatch, niloleite, nq6, On_7, onedroid, Orivalde, paulokiller, peterson.bah, phfmendes, PicsearchDroid, Rainha Amidala/Padmé, ramonsiebra, rerp7, ricardo, ricardzanella, Robson Florentino, rodrigo_corinthians, rodrigo_mg, rotilho, Samuka, scattonevi, SEO Crawler, shadow, sidnei.gs, Silvio Vaz, silvio.carlos, Stryder, suissa, tchou, tiagocordeiro, tiagofalcao, Topeca, wcaciano, Wendel Carvalho, wil, wilson.slima, WiseNut, woyzeck, Zam Wesell e 5 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi