Logcat, günlük aramalarımı görüntülemiyor


114

Android programlamada tam bir çaylakım ve uygulamalarımda nasıl hata ayıklayacağımı öğrenmek istedim. Log.i | d | v aramalarım LogCat'de görüntüleniyor gibi görünmüyor.

İşte kullandığım kod. Gördüğünüz gibi bir LOG_TAG sabiti tanımladım, ancak LogCat'te bulamıyorum. Ayrıca android.util.Log'u içe aktardım VE AndroidManifest'imde "hata ayıklanabilir" seçeneğinin TRUE olarak ayarlandığından emin oldum.

Bu sorunu çözmek için herhangi bir şans olmadan http://developer.android.com/reference/android/util/Log.html'yi de kontrol ettim .

Neyi yanlış yapıyorum? Hatta doğru yere mi bakıyorum? DDMS ve Hata Ayıklama perspektifini de şanssız kullanmayı denedim. Bu çaylağa yapılacak herhangi bir yardım çok takdir edilecektir. Teşekkürler.

Ortamım: Windows XP IDE = Eclipse Sürümü: 3.6.1, Derleme kimliği: M20100909-0800 Emulator = android sdk 2.1 api 7'yi göstermesi

// birkaç Log.i çağrısıyla çok basit HELLO World kodu

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

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

Görünüşe göre yanlış bir şey yapmıyorsun, Faaliyetinin başladığından emin misin? Logcat görünümünde ayarlanmış herhangi bir filtre var mı? Logcat'in komut satırı sürümünü denediniz mi? (adb logcat)
Cheryl Simon

Evet, komut satırını denedim ve bir txt dosyasına çıktı ve yine de bulamadım. Aktivitenin başladığını biliyorum çünkü emülatörde "Merhaba Dünya" mesajını görüyorum. Logcat'i filtreli ve filtresiz görüntülemeyi denedim ve hala şansım yok.
Cavachon

Adb logcat komut satırını deneyin ve önce hiçbir şeyi filtrelemeyin. Kodunuzun çalıştığından ve günlüğe yazdırdığından oldukça eminim.
Heikki Toivonen

LogCat hiç çalışıyor mu? Örneğin, başka uygulamalardan (örneğin sistem uygulamaları) günlük girişleri görüyor musunuz?
Vit Khudenko

Cihaza özel olabilir. bazen telefonun gizli menüsünden günlükleri etkinleştirmemiz gerekiyor stackoverflow.com/a/43999262/2783229
nitesh

Yanıtlar:


143

Eclipse kullanırken, DDMS perspektifinde, doğru cihazın (muhtemelen emülatör-xxxx) seçildiğinden ve vurgulandığından emin olun. Ancak o zaman logcat görünümünde logcat çıktısını alırsınız.

Ayrıca, Android eklentisi biraz tuhaftır ve bazen logcat görünümünde yalnızca son satırı gösterir. Bu olursa, günlüğü temizlemeyi deneyin. Bundan sonra, tüm günlük girişlerini tekrar almalısınız (yine de benim için çalışıyor).


Evet, yaşadığım tüm sorunlar. Logcat görünümünde kaydırırsanız, siz en alta dönene kadar gelecekteki güncellemelerle otomatik olarak kaymayacaktır.
Mike Yockey

2
Ha! Bir süredir bununla savaşıyordum. DDMS'yi açtım ve eski bir emülatör seçtim. Neden şu anda çalışan öykünücünün varsayılan olarak ayarlanmaması tuhaf.
Will Curran

ddewaele'nin cevabı sorunumu çözdü, LogCat'i odak noktası olması gereken yere bırakmanız yeterli. Bir yan not olarak, cihazlar menüsünü açmak için perspektifi değiştirmek zorunda değilsiniz Sadece Pencere >> Görünümü Göster >> Diğer >> Android >> Cihazlar, cihazlar panelini açmak için
Jay

@yock Bunun kasıtlı olduğuna inanıyorum, zira kaydırdığınız noktada durup okumak istediğiniz varsayılıyor.
Michael Mior

1
Hahaha O kadar aptalım ki DDMS'nin ne olduğunu ve nerede bulacağımı bile bilmiyorum.
Neon Warge

71

Eğer hepsi hataysa:

Yukarıdakilerin hepsini yaptım ve neyin yanlış olduğunu anlayamadım.

Şununla test edin:

adb logcat

girişlerimin logcat'te gerçek olduğunu anlamak için, ama twas adt'ın tuhaflıkları.

Düzeltme:

Tutulmayı yeniden başlat

Bunu düzelten tek şey buydu.


1
Bu işe yarıyor, ancak bu sorun benim için çok olduğu için Eclipse'i yeniden başlatamıyorum. Daha iyi bir çözümü olan var mı?
Halid Alanezi

@KhaledAlanezi daha sonra komut isteminden veya Windows powershell'den (daha iyi) logcat kullanmayı düşünmelidir.
Dheeraj Bhaskar

1
Bu her seferinde tutulmayı yeniden başlatıyorum ve her zaman sorunu çözüyor. genellikle günde bir kez oluyor ama ben zaten tutulmadan hayal kırıklığına
programcı

2
@programmer artık tutulmadan hayal kırıklığına uğramayın, Android Studio'ya geçin, dostum :)
Dheeraj Bhaskar

1
Uzak bir makinede bir emülatör kullanmak benim için tutulmayı yeniden başlatmak işe yaramıyor Logcat hiçbir şey göstermiyor ama adb logcatiyi bir ipucu, çok olumlu oy kullanıyorum.
2016

12

Android Studio'yu kullanırken de aynı sorunu yaşadım No Filtersve LogCat'in sağ üst köşesindeki seçim kutusunu seçerek dolaşmayı başardım. Bunu yaparak, eksik Günlük aramalarım da dahil olmak üzere Android günlüklerinin arka planda LogCat'e her şeyi almaya başladım.

görüntü açıklamasını buraya girin


9

Eclipse'i yeniden başlatın ve check log cat görüntülenecektir.


6

Ben otomatik olarak ithal ediyordu anladım com.sileria.Log yerine (bazı kütüphane projesinden) android.util.Log ikincisi doğru biriydi. İthalatlarınızı da kontrol edin.


3

Eclipse'in bazen bir Android uygulamasını başlatırken bir istisna oluşturduğunu, ardından LogCat'in güncellemeyi durdurduğunu fark ettim. Eclipse'i yeniden başlatarak bunu düzelttim. Bunu denediniz mi emin değilim ve bunun optimal bir çözüm olmaktan uzak olduğunu biliyorum, ancak Eclipse eklentisinin hala çözülmesi gereken birkaç hata olduğundan şüpheleniyorum.


3

En kolay yol:

Logcat pencerenizi kontrol edin - SAĞ ÜST KÖŞE DURAKLAT düğmesi || (Yeni logcat mesajlarını almayı duraklat)

Birkaç tıklama + sonunda tutulmayı yeniden başlat (benim durumumda genellikle işe yarar)


3

Adb servisini komutla yeniden başlatmam gerekiyordu adb usb

Bundan önce, tüm günlükleri alıyordum ve hata ayıklayabiliyordum, ancak kendi günlük satırlarımı alamıyordum (evet, uygulamamla ilişkili sistem günlüğü alıyordum).


Bende de var - kendi günlük satırlarını almıyorum. Ancak bu yardımcı olmadı :(
Ixx

2

Günlükleri görmemenizin birkaç nedeni vardır ve bunların çoğu aşağıda listelenmiştir. Çoğu nedeni kontrol etmek için bazı adımlar şunlardır:

  1. AndroidManifest.xml dosyanızda 'android: debuggable = "false"' olmadığından emin olun
  2. Logcat'inizin duraklatılmadığından emin olun ve en alta kaydırdığınızdan emin olun
  3. Filtreleriniz ya 'filtre yok' ya da mevcut uygulamanız olmalıdır
  4. Logcat cihazlar listenizde doğru cihazı seçtiniz
  5. Herhangi bir mesaj almıyorsanız , adb'yi yeniden başlatmayı deneyin. Bunu Android Studio'dan 'yeniden başlat' simgesine tıklayarak yapabilirsiniz, logcat için yazdırma simgesinin hemen sonrasına denk gelir ve kutudan çıkan yeşil, eğri bir ok gibi görünür. Görmüyorsanız, logcat çok küçük olduğunda simge menüsüne devam eden '>>' öğesinin üzerine gelin.

2

Android Studio'da: Günlüğe kaydetmeyi yeniden başlatmak için sağa işaret eden yeşil oka tıklayın; görünmüyorsa, bulmak için >> simgelerine tıklayın.


1

Ben de Android Eclipse konusunda yeniyim. Eclipse'de görüntülemek için LogCat mesajlarını almam için gerekenler: 1: bunu logcat mesajının çağrıldığı sınıfa ekleyin: private static final String TAG = "MyActivity"; (dokümantasyon başına burada )

2: bu Log.i'yi ekleyin (TAG, "inLayout - bitmiş"); nerede bir mesaj görüntülemek istediğinizde

Yukarıdakiler işe yaramazsa, Eclipse'i kapatın ve yeniden başlatın ve projenizi yeniden çalıştırın.

Daha sonra çalışmalıdır.


1

İzlenecek bir şey daha var:

Logcat'in sağ üst tarafında, iletileri türe göre filtrelemek için bir açılır tablo vardır . Aradığınız seviyede olduğundan emin olun (eğer iddia düzeyinde olacaksa, büyük ihtimalle logcat'inizi boş bırakacaktır).


1

Lütfen Görev Yöneticisine gidin ve adb.exe işlemini sonlandırın. Tutulmanızı yeniden başlatın.

veya

adb kill-server'ı ve ardından adb start-server komutunu deneyin .


1

Muhtemelen doğru değil ve biraz daha uzun, ancak bu sorunu (Android Studio) bunu kullanarak çözdüm:

System.out.println("Some text here");

Bunun gibi:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

Böyle bir durumda birkaç saat geçirdim. Sadece dokunmatik tuş kayıtlarını gördüm. Daha fazlası yok. Sorun ... akıllı telefondu. Yeniden başlattıktan sonra Tamam oldu. Kablonun bağlantısının kesilmesi soruna neden oldu. Yeniden başlatmak zorunda kaldı. Görünüşe göre Android USB iletişimi iyi tasarlanmamış.


Teşekkür ederim! Aslında, USB hata ayıklama ile ilgili olarak ... telefonun hızlı menüsünde USB ayarıydı. Yalnızca Şarj Etme'den Dosya Aktarma'ya geçme alışkanlığı edinmiştim. AMA, Yalnızca Şarj Etme, günlük kaydını çalıştıran şeydi. Birkaç yıl aradan sonra Android programlamaya geri dönüyorum ve bu gerçekten öğrenme eğrimi zorlaştırıyordu.
wwfloyd

Sonra, sadece bir miktar günlük kaydı alıyordum ... son eklenen her şey göz ardı edildi. Bunu Android Studio'da Temizle ve Yeniden Çalıştır ile sıralandı.
wwfloyd

1

HIZLI DÜZELTME.

Tutulmayı yeniden başlat

Mükemmel Çalışıyor.


0

SDK 4.0.3'ü kullanarak, bunu hata ayıklama konfigürasyonları> proje> hedef üzerinde açıkça seçmelisiniz, aksi takdirde Eclipse Indigo (3.7) kullanarak asla gösterilmeyecektir. Elbette bir tutulma yeniden başlar.


0

Logcat'te de basit günlük çıktısını görmede sorun yaşadım. En son JDK'yı kurduğumda sorunum çözüldü. Sadece yeni bir geliştirme makinesi kurdum ve sadece JRE'yi kurdum ve JDK'yı kurmak benim için çalıştı.


0

Diğer cevapların hiçbiri benim için işe yaramadı ama bu işe yaradı:

Projemi çalışma alanımdan kaldırdım, ardından proje klasöründen nokta ile başlayan her şeyi (.settings, .project vb.) Sildim. Sonra öngörülenleri yeniden içe aktardım. Bazı ayarları ve kesme noktalarını özlüyorum ama en azından işe yarıyor.


0

Bu sorunu yaşıyordum ve günlük aramasını bir işleyiciye taşıyana kadar hiçbir şey işe yaramadı. Artık nerede olursanız olun her seferinde çalışıyor.


0

Logcat arama kutusuna bir arama terimi yazarak hata yaptım. Silmeyi unuttum ve bu nedenle yeni günlükleri göremedim. Arama terimimle eşleşmedikleri ve görüntülenmedikleri için.


0

Benim durumumda bu satırı kaldırmak zorunda kaldım:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

Manifest dosyamdaki Uygulama etiketinden.


0

Benim için en iyi çözüm adb sunucusunu yeniden başlatmaktı ( Android stüdyosunda ADB entegrasyonunu etkinleştirmişken - Araçlar - Android - kontrol edildi). Bunu hızlı bir şekilde yapmak için, dizin adbr.batiçinde android-sdk\platform-tools(nerede adb.exebulunur) bunun içinde dosya oluşturdum :

adb kill-server
adb start-server

PATH sistem değişkeninde bu klasöre sahip olduğum için, her zaman adbAndroid stüdyosundan yeniden başlatmam gerektiğinde , sadece terminale yazabiliyorum adbrve bitti.

Bunu yapmak için başka bir seçenek , Cihazlar sekmesindeki Android Cihaz Monitörü - Sağdaki küçük oka tıkladıktan sonra Menü - Adb'yi sıfırla .


0

Tutulma için: 1) DDMS perspektifine gidin. 2) Doğru cihazın seçildiğinden emin olun. 3) Zaten seçilmişse ve günlükleri görüntülemiyorsa, ABD'yi yeniden başlatın. * Umarım bu çözülür.


0

ADB hizmetini de "adb usb" ile yeniden başlattım ve sorunu benim için düzelttim. Aslında, artık etkinliklerimden sadece biri kayıt olmadı. Diğerleri günlük şeyler yaptı. Adb'yi yeniden başlattıktan sonra her şey bir cazibe gibi çalışır. Başka bir çözüm arayan diğer insanlar için: adb kill-server, CLI'deki adb start-server genellikle probleminizi de çözecektir.


0

LogCat yeniden başlatıldığında uygulamanızı kapanmaya zorlayın ...

bunu zorla kapatmak için kullanın: D

setContentView(BIND_AUTO_CREATE);

0

Bazen sorun bilgisayardan değil, diğer yandan IDE, ADB vb.'den kaynaklanmamaktadır , ancak cihazınızın ADB'ye günlük göndermemesinden kaynaklanmaktadır, bu nedenle daha önce belirtilen tüm yolları denediyseniz ve hala logcat'iniz boşsa , bilgisayarınızı yeniden başlatmayı deneyin. cihaz ve tekrar deneyin. Yukarıda belirtilen tüm yolları denedim ve ikisi de işe yaramadı, ancak telefonumda yeniden başlattıktan sonra logcat sihir gibi çalıştı


Cihazın günlükleri ADB'ye gönderip gönderemeyeceği nasıl kontrol edilir?
JCarlosR

@JCarlos, yukarıdaki çözümlerden hiçbiri işe yaramadıysa cihazınızı yeniden başlatmayı deneyin
Code_Worm

AndroidMonitor, Loguygulamayı akıllı telefonumdan kullandığımda ve çalıştırdığımda mesajları gösteriyor , ancak akıllı saatimden çalışmıyor. Ayarlara bakıyordum ama her şey iyi görünüyor.
JCarlosR

0

Bu sorunlarım var ve düzelttim, boşluksuz String TAG:

"
etiketim" // "etiketim" gösteriliyor // tamam


0

Benim durumumda String'e bir isim eklemem gerekiyordu. İlk olarak, parantezlerin arasında bir boşluk vardı

private static final String TAG = " ";

ancak bir isim ekledikten sonra mükemmel çalıştı.

private static final String TAG = "oncreate";

0

Android 3.6.1'e yükselttikten sonra bu sorunu birçok kez yaşadım. Benim durumumda çalışan tek şey CİHAZI YENİDEN BAŞLATMAK.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.