Android Studio ve Android Gradle Eklentisi ile ilgili bilinen sorunlar

Bu sayfada, Android Studio Ladybug ve Android Gradle eklentisi 8.7.0 ile ilgili bilinen sorunlar takip edilir. Burada belirtilmeyen bir sorunla karşılaşırsanız lütfen hata bildiriminde bulunun.

Öniz sürüme yükseltme: Android Studio ve Android Gradle eklentisinin her sürümü, kararlılığı ve performansı iyileştirmeyi ve yeni özellikler eklemeyi amaçlar. Yaklaşan sürümlerin avantajlarından hemen yararlanmak için Android Studio Önizlemesi'ni indirip yükleyin.

Android Studio ile ilgili bilinen sorunlar

Bu bölümde, Android Studio'nun en son kararlı sürümünde bulunan bilinen sorunlar açıklanmaktadır.

"Değişiklikleri Uygula ve Etkinliği Yeniden Başlat" seçeneği, API düzeyi 35 cihazlarda veya emülatörlerde etkinliği yeniden başlatmıyor

"Değişiklikleri Uygula ve Etkinliği Yeniden Başlat" seçeneğini kullanarak API 35 cihazına kod değişiklikleri dağıttığınızda uygulama yeniden başlatılmaz ve değişikliklerin etkisini görmezsiniz. Uygulamayı yeniden çalıştırırsanız kod değişikliklerinin etkisini görürsünüz. Ekibimiz bu konuyu aktif olarak araştırıyor.

Firebase asistan penceresinde hata mesajı gösteriliyor

Firebase Asistanı penceresinde (ana menüden Araçlar > Firebase) bir hata mesajı gösteriliyorsa hatayı düzeltmek için önbellekleri geçersiz kılıp Android Studio'yu yeniden başlatın.

Düzen Denetleyici'yi kullanarak bir görünümü ayırama

Yerleşik Düzen Denetleyici'yi kullanarak bir görünümü ayırma özelliği geçici olarak kullanılamamaktadır. Bu sorunu gelecekteki bir sürümde düzeltmek için çalışmalarımızı sürdürüyoruz.

Compose düğümlerinin tümü Layout Inspector ile denetlenememektedir

Düzen Denetleyici'yi kullanırken tüm Oluştur düğümlerinin incelenemediğini fark ederseniz bunun nedeni muhtemelen Oluştur 1.5.0-alpha04 sürümünde düzeltilen bir hatadır. Bu sorunla karşılaşıyorsanız Compose 1.5.0-alpha04 veya sonraki bir sürüme yükseltme yaptığınızdan emin olun.

Oluşturma önizlemesi oluşturulurken hata

Android Studio Chipmunk'tan itibaren, sorunlar panelinde java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner veya java.lang.ClassNotFoundException: androidx.savedstate.R$id görüyorsanız modülünüze androidx.lifecycle:lifecycle-viewmodel-savedstate için debugImplementation bağımlılık eklediğinizden emin olun.

Sorunlar panelinde java.lang.NoSuchFieldError: view_tree_lifecycle_owner görüyorsanız modülünüze androidx.lifecycle:lifecycle-runtime öğesine debugImplementation bağımlılığı eklediğinizden emin olun.

Sorunlar panelinde java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer veya java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener görüyorsanız modülünüze androidx.customview:customview-poolingcontainer için debugImplementation bağımlılık eklediğinizden emin olun.

Anahtar ve anahtar deposu için farklı şifreler kullanılırken hata oluştu

Android Studio 4.2 sürümünden itibaren artık JDK 11 ile çalışmaktadır. Bu güncelleme, imzalama anahtarlarıyla ilgili temel bir davranış değişikliğine neden olur.

Derleme > İmzalı Paket / APK Oluştur'a gidip bir uygulama paketi veya APK için uygulama imzalamayı yapılandırmaya çalıştığınızda, anahtar ve anahtar deposu için farklı şifreler girmeniz aşağıdaki hatayı verebilir:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

Bu sorunu gidermek için hem anahtar hem de anahtar deposu için aynı şifreyi girin.

Android Studio 4.2 sürümü yüklendikten sonra başlatılmıyor

Studio, önceki .vmoptions dosyasını içe aktarmaya ve JDK 11 tarafından kullanılan çöp toplayıcıyla çalışacak şekilde temizlemeye çalışır. Bu işlem başarısız olursa IDE, .vmoptions dosyasında özel sanal makine seçenekleri ayarlayan belirli kullanıcılar için başlatılmayabilir.

Bu sorunu gidermek için .vmoptions dosyasında özel seçenekleri ("#" karakterini kullanarak) yorumlamanız önerilir. .vmoptions dosyası aşağıdaki konumlarda bulunabilir:

Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

Bu geçici çözümü denedikten sonra Studio hâlâ başlatılamıyorsa aşağıdaki Yükseltme sonrası Studio başlatılamıyor bölümüne bakın.

Veritabanı İnceleyici'yi kullanan uygulamalar Android 11 emülatöründe kilitleniyor

Veritabanı İnceleyici'yi kullanan uygulamalar, Android 11 emülatöründe çalışırken kilitlenebilir ve logcat'te aşağıdaki gibi bir hata gösterilebilir:

 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

Bu sorunu düzeltmek için Araçlar > SDK Yöneticisi'ne giderek Android 11 emülatörünüzü 9 veya sonraki bir sürüme yükseltin. SDK Platformları sekmesinde Paket Ayrıntılarını Göster etiketli kutuyu işaretleyin ve Android 11 emülatörünün 9 veya sonraki bir düzeltmesini seçin.

Studio, yükseltme işleminden sonra başlatılmıyor

Studio, yükseltme işleminden sonra başlatılamıyorsa sorun, Android Studio'nun önceki bir sürümünden içe aktarılan geçersiz bir Android Studio yapılandırması veya uyumlu olmayan bir eklentiden kaynaklanıyor olabilir. Geçici çözüm olarak, Android Studio sürümüne ve işletim sistemine bağlı olarak aşağıdaki dizini silmeyi (veya yedekleme amacıyla yeniden adlandırmayı) deneyin ve Android Studio'yu tekrar başlatın. Bu işlem, Android Studio'yu tüm üçüncü taraf eklentileri kaldırılmış şekilde varsayılan durumuna sıfırlar.

Android Studio 4.1 ve sonraki sürümler için:

  • Windows: %APPDATA%\Google\AndroidStudio<version>
    Örnek: C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1

  • macOS: ~/Library/Application Support/Google/AndroidStudio<version>
    Örnek: ~/Library/Application Support/Google/AndroidStudio4.1

  • Linux: ~/.config/Google/AndroidStudio<version> ve ~/.local/share/Google/AndroidStudio<version>
    Örnek: ~/.config/Google/AndroidStudio4.1 ve ~/.local/share/Google/AndroidStudio4.1

Android Studio 4.0 ve önceki sürümler için:

  • Windows: %HOMEPATH%\.AndroidStudio<version>\config
    Örnek: C:\Users\your_user_name\.AndroidStudio3.6\config

  • macOS: ~/Library/Preferences/AndroidStudio<version>
    Örnek: ~/Library/Preferences/AndroidStudio3.6

  • Linux: ~/.AndroidStudio<version>/config
    Örnek: ~/.AndroidStudio3.6/config

Android Studio'nun Canary ve Beta sürümlerinin yapılandırma dizininin, <version> için X.Y yerine PreviewX.Y olduğunu unutmayın. Örneğin, Android Studio 4.1 Canary derlemeleri, sürüm adayları ve kararlı sürümler için kullanılan AndroidStudio4.1 dizini yerine AndroidStudioPreview4.1 dizinini kullanır.

Kotlin çok platformlu projelerinde derleme sorunu

Kotlin MPP kodunda eksik semboller nedeniyle derleme hataları oluşabilir. Kotlin eklentinizi 1.4 sürümüne yükseltmek bu sorunu çözecektir.

Linux'da tuş eşleme çakışmaları

Linux'da belirli klavye kısayolları, varsayılan Linux klavye kısayollarıyla ve KDE ve GNOME gibi popüler pencere yöneticilerinin kısayollarıyla çakışır. Bu çakışan klavye kısayolları Android Studio'da beklendiği gibi çalışmayabilir.

Bu sorunla ilgili daha fazla bilgiyi (potansiyel geçici çözümler dahil) IntelliJ'in hata izleyicisinde bulabilirsiniz.

ChromeOS'te küçük kullanıcı arayüzü metni

ChromeOS'te metinler önceki sürümlere kıyasla çok daha küçük görünebilir. Bu sorunu gidermek için aşağıdakileri yapın:

  1. Dosya > Ayarlar'ı tıklayarak Ayarlar penceresini açın.
  2. Görünüm ve Davranış > Görünüm'e gidin.
  3. Özel yazı tipi kullan'ı seçin.
  4. Yazı tipi boyutunu artırın.
  5. Ayarlar penceresinde Düzenleyici > Yazı tipi'ne gidin.
  6. Yazı tipi boyutunu artırmak.
  7. Tamam'ı tıklayın.

Kod düzenleme

Bu bölümde, kod düzenleyiciyle ilgili bilinen sorunlar açıklanmaktadır.

Klavye girişi dondu - Linux'ta "iBus" sorunları

Linux ve Android Studio'daki iBus arka plan programı arasında bilinen bazı etkileşimler vardır. Bazı senaryolarda IDE, klavye girişine yanıt vermeyi durdurur veya rastgele karakterler girmeye başlar. Bu hata, iBus ile XLib + AWT arasındaki bazı eksik senkronizasyonlar nedeniyle tetiklenmiştir ve yukarı akış yönünde JetBrains ve iBus'a bildirilmiştir. Bu sorun için üç geçici çözüm vardır:

  • 1. Geçici çözüm: iBus'u senkronize moda zorlama. Android Studio'yu başlatmadan önce komut satırında aşağıdakileri çalıştırın:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • Geçici Çözüm 2: Android Studio'da iBus girişini devre dışı bırakın. Yalnızca Android Studio için iBus girişini devre dışı bırakmak istiyorsanız komut satırında aşağıdakileri çalıştırın:
    $ XMODIFIERS= ./bin/studio.sh
    Bu geçici çözüm yalnızca Android Studio'nun giriş yöntemlerini devre dışı bırakır, çalıştırmakta olabileceğiniz diğer uygulamaların giriş yöntemlerini devre dışı bırakmaz. Android Studio çalışırken daemon'u yeniden başlatırsanız (örneğin, ibus-daemon -rd çalıştırarak) diğer tüm uygulamaların giriş yöntemlerini devre dışı bıraktığınızı ve Android Studio'nun JVM'sini bir segmentasyon hatasıyla kilitleyebileceğinizi unutmayın.
  • Geçici Çözüm 3: Sonraki giriş kısayolunun Control+Boşluk tuşu aynı zamanda Android Studio'daki kod tamamlama kısayolu olduğundan emin olmak için kısayol bağlamalarını tekrar kontrol edin. Ubuntu 14.04 (Trusty), Super+Space tuş kombinasyonunu varsayılan kısayol olarak belirler ancak önceki sürümlerdeki ayarlar hâlâ geçerli olabilir. Kısayol bağlamalarınızı kontrol etmek için komut satırında ibus-setup komutunu çalıştırarak IBus Tercihler penceresini açın. Klavye kısayolları bölümünde Sonraki giriş yöntemi'ni işaretleyin. Control+Boşluk olarak ayarlanmışsa Super+Boşluk veya istediğiniz başka bir kısayol olarak değiştirin.

Proje yapılandırması

Bu bölümde, proje yapılandırması ve Gradle senkronizasyonu ile ilgili bilinen sorunlar açıklanmaktadır.

Gradle Senkronizasyonu Başarısız Oldu: Bozuk Boru

Sorun, Gradle arka plan programının IPv6 yerine IPv4 kullanmaya çalışmasıdır.

  • 1. geçici çözüm: Linux'ta ~/.profile veya ~/.bash_profile dosyanıza şunları ekleyin:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • 2. geçici çözüm: Android Studio'nun vmoptions dosyasında -Djava.net.preferIPv4Addresses=true satırını -Djava.net.preferIPv6Addresses=true olarak değiştirin. Daha fazla bilgi için Ağ IPv6 Kullanıcı Kılavuzu'na bakın.

Gradle senkronizasyonu veya SDK Yöneticisi'nden gelen "eş kimliği doğrulanmadı" hataları

Bu hataların temel nedeni, $JAVA_HOME/jre/lib/certificates/cacerts alanında eksik bir sertifikadır. Bu hataları gidermek için aşağıdaki adımları uygulayın:

  • Proxy kullanıyorsanız doğrudan bağlanmayı deneyin. Doğrudan bağlantı çalışıyorsa proxy üzerinden bağlanmak için proxy sunucusunun sertifikasını cacerts dosyasına eklemek üzere keytool'ü kullanmanız gerekebilir.
  • Desteklenen, değiştirilmemiş bir JDK'yi yeniden yükleyin. Ubuntu kullanıcılarını etkileyen bilinen bir sorun vardır ve bu durum boş /etc/ssl/certs/java/cacerts ile sonuçlanır. Bu sorunu gidermek için komut satırında aşağıdakileri yürütün:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

Dağıtılıyor

Bu bölümde, uygulamanızı bağlı bir cihaza dağıtmayla ilgili bilinen sorunlar açıklanmaktadır.

[Yalnızca Mac OS] /System/Volumes/Data altına kaydedilen projelerde Gradle dosyası izlemeyle ilgili bir sorun nedeniyle artımlı güncellemeler uygulanmaz

Gradle 18149 sorunu, Gradle 7.0 ve sonraki sürümleri gerektirdiği için Android Gradle eklentisinin 7.0 ve sonraki sürümlerini etkiler. Gradle 7.0'dan itibaren dosya izleme varsayılan olarak etkindir. Mac OS'te çalışıyorsanız ve projeniz /System/Volumes/Data altında kaydedilmişse Gradle dosya izleme, dosya değişikliklerini düzgün şekilde izlemez. Bu, derleme sisteminin dosya değişikliklerini görmemesine neden olur ve bu nedenle APK'lar güncellenmez. Yerel APK durumu cihazdakiyle aynı olduğu için artımlı dağıtım kodu hiçbir şey yapmaz.

Bu sorunu gidermek için projenizin dizinini kullanıcı dizininize (yani /Users/username altına) taşımanız gerekir. Ardından Derleme Sistemi, Gradle dosya izleme yoluyla dosya değişiklikleri hakkında doğru bir şekilde bilgilendirilir ve artımlı değişiklikler başarıyla uygulanır.

macOS High Sierra'da Android Emulator HAXM

macOS High Sierra (10.13)'daki Android Emülatör'ün macOS ile en iyi uyumluluğu ve kararlılığı için HAXM 6.2.1 veya sonraki bir sürüm gerekir. Ancak macOS 10.13'te HAXM gibi çekirdek uzantılarını yükleme işlemi daha karmaşıktır. Çekirdek uzantısının yüklenmesine aşağıdaki gibi manuel olarak izin vermeniz gerekir:

  1. Öncelikle, SDK Yöneticisi'nden HAXM'ın en son sürümünü yüklemeyi deneyin.
  2. MacOS'te Sistem Tercihleri > Güvenlik ve Gizlilik'e gidin.
  3. "Intel Corporation Apps" geliştiricisine ait sistem yazılımının yüklenmesinin engellendiğini belirten bir uyarı görürseniz İzin ver'i tıklayın:

Daha fazla bilgi ve geçici çözümler için bu Apple web sayfasına ve 62395878 numaralı soruna göz atın.

Değişiklikleri Uygulama

Bu bölümde, Değişiklikleri Uygulama ile ilgili bilinen sorunlar açıklanmaktadır.

Yeni uygulama adı uygulanmadı

Uygulamanızı yeniden adlandırdıktan sonra bu değişikliği uygulamayı denerseniz güncellenen ad yansıtılmayabilir. Bu sorunu çözmek için ÇalıştırÇalıştır simgesi tıklayarak uygulamanızı yeniden dağıtın ve değişikliklerinizi görün.

Android Runtime'daki sorun hata veriyor

Android 8.0 veya 8.1 çalıştıran bir cihaz kullanıyorsanız belirli değişiklik türlerini uygulamaya çalışırken (özellikle Kotlin kullanıyorsanız) "VERIFICATION_ERROR" mesajlarıyla karşılaşabilirsiniz. Bu mesaj, Android Runtime ile ilgili bir sorundan kaynaklanıyor. Bu sorun Android 9.0 ve sonraki sürümlerde düzeltilmiştir. Sorun, Değişiklikleri Uygula işleminin başarısız olmasına neden olsa da değişikliklerinizi görmek için uygulamanızı tekrar Çalıştırabilirsiniz. Ancak cihazı Android 9.0 veya sonraki bir sürüme yükseltmenizi öneririz.

Hata ayıklama ve test etme

Bu bölümde, uygulamanızın hata ayıklama ve test edilmesiyle ilgili bilinen sorunlar açıklanmaktadır.

Android Studio'dan çalıştırıldığında JUnit, sınıf yolu içinde eksik kaynakları test eder

Java modüllerinizde belirli kaynak klasörleriniz varsa IDE'den test çalıştırırken bu kaynaklar bulunamaz. Komut satırından Gradle kullanarak test çalıştırabilirsiniz. Gradle check görevini entegre geliştirme ortamından yürütülmek de işe yarayacaktır. Daha fazla bilgi için 64887 numaralı soruna bakın.

Bu sorun, IntelliJ 13'ten itibaren sınıf yolu olarak yalnızca tek bir klasörünüz olmasını gerektirdiği için ortaya çıkar. IntelliJ'in derleyicisi tüm kaynakları bu derleme klasörüne kopyalar ancak Gradle kaynakları kopyamaz.

  • 1. geçici çözüm: Birim testi çalıştırmak yerine Gradle check görevini IDE'den çalıştırın.
  • 2. Geçici çözüm: Kaynakları derleme klasörüne manuel olarak kopyalayacak şekilde derleme komut dosyanızı güncelleyin. Daha fazla bilgi için 13. yoruma bakın.

JUnit testlerinin çalıştırılması kodu iki kez derleyebilir

Yeni bir proje oluştururken şablon JUnit yapılandırması, iki "Başlamadan önce" adımı (Make ve Gradle'ye duyarlı Make) ile oluşturulabilir. Bu yapılandırma daha sonra oluşturulan tüm JUnit çalıştırma yapılandırmalarına dağıtılır.

  • Mevcut projedeki sorunu düzeltmek için Çalıştır > Yapılandırmaları Düzenle'yi tıklayın ve varsayılan JUnit yapılandırmasını yalnızca Gradle'den haberdar Make adımını içerecek şekilde değiştirin.
  • Sorunu gelecekteki tüm projelerde düzeltmek için Dosya > Projeyi Kapat'ı tıklayın. Karşılama ekranını göreceksiniz. Ardından Yapılandır > Proje Varsayanları > Çalıştırma Yapılandırmaları'nı tıklayın ve JUnit yapılandırmasını yalnızca Gradle'den haberdar Make adımını içerecek şekilde değiştirin.

Bazı test çalıştırma yapılandırmaları çalışmıyor

Bir test yöntemini sağ tıkladığınızda kullanılabilen tüm çalıştırma yapılandırmaları geçerli değildir. Özellikle aşağıdaki yapılandırmalar geçerli değildir:

  • Gradle çalıştırma yapılandırmaları (simgesinde Gradle logosu bulunan) çalışmaz.
  • JUnit çalıştırma yapılandırmaları (yeşil Android simgesi olmayan bir simgeyle gösterilir), yerel JVM'de çalıştırılamayacak enstrümantasyon testleri için geçerli değildir.
Android Studio, belirli bir bağlamda oluşturulan çalıştırma yapılandırmasını da (örneğin, belirli bir sınıfı veya yöntemi sağ tıklayarak) hatırlar ve gelecekte farklı bir yapılandırmada çalıştırmayı teklif etmez. Bu sorunu düzeltmek için Çalıştır > Yapılandırmaları Düzenle'yi tıklayın ve yanlış oluşturulan yapılandırmaları kaldırın.

Yerel kodda hata ayıklarken Java ayrılma noktaları ekleme

Uygulamanız, yerel kodunuzdaki bir kesme noktasında duraklatıldığında otomatik ve çift hata ayıklayıcılar, belirlediğiniz yeni Java kesme noktalarını hemen tanımayabilir. Bu sorunu önlemek için, hata ayıklama oturumu başlatmadan önce veya uygulama bir Java kesme noktasında duraklatılmışken Java kesme noktaları ekleyin. Daha fazla bilgi için 229949 numaralı soruna bakın.

Yerel hata ayıklayıcıdan çıkma

Java ve yerel kodu hata ayıklamak için Otomatik veya Çift hata ayıklayıcıyı kullanırken Java kodunuzdan yerel bir işleve adım atarsanız (örneğin, hata ayıklayıcı, Java kodunuzdaki yerel işlevi çağıran bir satırda yürütmeyi duraklatır ve Adım düğmesini tıklarsanız) ve Java kodunuza dönmek isterseniz Programı Devam ettir 'i (Dışarı Çık veya Atla yerine) tıklayın. Uygulama işleminiz duraklatılmış olarak kalır. Bu nedenle, devam ettirmek için your-module-java sekmesinde Programı Devam ettir'i tıklayın. Daha fazla bilgi için 224385 numaralı soruna bakın.

Yerel hata ayıklayıcı, kitaplıklar yüklenirken takılıyor

Android Studio 4.2 ve sonraki sürümlere geçtikten sonra yerel hata ayıklayıcıyı ilk kez kullanırken yerel hata ayıklayıcı, Android cihazdan kitaplık yüklerken yanıt vermeyi durdurabilir. Bu sorun, hata ayıklayıcıyı durdurup yeniden başlatsanız bile devam eden bir sorundur. Bu sorunu düzeltmek için $USER/.lldb/module-cache/ adresindeki LLDB önbelleğini silin.

Yerel hata ayıklayıcı, "Hata ayıklayıcı işlemi 127 çıkış koduyla sonlandırıldı" hatasıyla kilitleniyor

Bu hata, yerel hata ayıklayıcıyı başlatırken Linux tabanlı platformlarda ortaya çıkar. Yerel hata ayıklayıcının gerektirdiği kitaplıklardan birinin yerel sistemde yüklü olmadığını gösterir. Eksik kitaplığın adı idea.log dosyasında basılı olabilir. Aksi takdirde, Android Studio yükleme dizinine gitmek için bir terminal kullanabilir ve hangi kitaplıkların eksik olduğunu öğrenmek için bin/lldb/bin/LLDBFrontend --version komut satırını çalıştırabilirsiniz. Yakın zamanda kullanılan bazı Linux dağıtımları zaten ncurses6 sürümüne yükseltildiğinden eksik kitaplık genellikle ncurses5 şeklindedir.

Profil oluşturucular

Bu bölümde, Profilers'la ilgili bilinen sorunlar açıklanmaktadır.

Yerel Bellek Profilleyici: Uygulama başlatılırken profil oluşturma kullanılamaz

Yerel Bellek Profil Aracı şu anda uygulama başlatılırken kullanılamaz. Bu seçenek, gelecekteki bir sürümde kullanıma sunulacaktır.

Çözüm olarak, başlangıç profillerini yakalamak için Perfetto bağımsız komut satırı profilleyicisini kullanabilirsiniz.

CPU Profiler'da zaman aşımı hataları

Java Yöntemlerini Örnekle veya Java Yöntemlerini İzle yapılandırmalarını seçtiğinizde Android Studio CPU Profilleyici'de "Kayıt durdurulamadı" hataları görebilirsiniz. Bunlar, özellikle idea.log dosyasında aşağıdaki hata mesajını görüyorsanız genellikle zaman aşımı hatalarıdır:

Wait for ART trace file timed out

Zaman aşımı hataları, örneklenen yöntemlere göre izlenen yöntemleri ve daha kısa kayıtlara göre daha uzun kayıtları etkileme eğilimindedir. Geçici bir çözüm olarak, hatanın kaybolup kaybolmadığını görmek için daha kısa kayıtlar deneyebilirsiniz.

Profilleyici ile ilgili zaman aşımı sorunları yaşıyorsanız lütfen cihazlarınızın markasını/modelini ve idea.log ile logcat'teki ilgili girişleri içeren bir hata raporu gönderin.

Hata ayıklama veya profil oluşturma sırasında ADB istisnası

Platform Araçları 29.0.3 kullanılırken, yerel hata ayıklama ve Android Studio kullanıcıları düzgün çalışmayabilir. Bu nedenle, Yardım > Günlüğü Göster'i seçtiğinizde idea.log dosyasında "AdbCommandReddedilenException" veya "Bağlantı noktası bağlanamadı" ifadesini görebilirsiniz. Platform Araçları'nı 29.0.4 veya sonraki bir sürüme yükseltmek her iki sorunu da düzeltir.

Platform Araçları'nı yükseltmek için aşağıdakileri yapın:

  1. Android Studio'da Araçlar > SDK Yöneticisi'ni veya araç çubuğundaki SDK Yöneticisi'ni tıklayarak SDK Yöneticisi'ni açın.
  2. Android SDK Platform Araçları'nın yanındaki onay kutusunu işaretleyerek bir onay işareti görüntülenmesini sağlayın. Sol sütunda bir indirme simgesi görünür.
  3. Uygula veya Tamam'ı tıklayın.

Eklenti, Derleme Çıkışı penceresinin çalışmasını engelliyor

CMake basit vurgulayıcı eklentisi, içeriğin Derleme Çıktısı penceresinde gösterilmesini engeller. Derleme çalışır ve Derleme Çıktısı sekmesi görünür ancak hiçbir çıktı yazdırılmaz (sorun #204791544).

Yükleme sırası, uygulamanın başlatılmasını engelliyor

Android Studio'nun daha yeni bir sürümünü eski bir sürümden önce yüklemek, eski sürümün başlatılmasını engelleyebilir. Örneğin, önce Android Studio'nun kanarya sürümünü yükler ve ardından kararlı sürümü yükleyip başlatmayı denerseniz kararlı sürüm başlatılmayabilir. Bu gibi durumlarda kararlı (eski) sürümün başlatılması için önbelleği temizlemeniz gerekir. MacOS'te önbelleği temizlemek için Library/ApplicationSupport/Google/AndroidStudioversion_number dizinini silin. Windows'da önbelleği temizlemek için Disk Temizleme'yi kullanın.

Espresso Test Kaydedici, Oluşturma işleviyle çalışmıyor

Espresso Test Recorder, Compose içeren projelerde çalışmaz. Oluştur'u içeren projeler için kullanıcı arayüzü testleri oluşturmak istiyorsanız Oluştur düzeninizi test etme başlıklı makaleyi inceleyin.

Logcat kısayolu, İngilizce olmayan klavye düzenleriyle çakışıyor

İngilizce olmayan bir klavye düzeni kullanıyorsanız varsayılan Logcat klavye kısayolu, düzenle çakışabilir ve Android Studio'da metin düzenlerken belirli karakterleri yazmanıza engel olabilir. Bu sorunu çözmek için çakışan Logcat tuş eşlemesini silin veya yeniden eşleyin. Android Studio'da Logcat tuş eşlemelerini düzenlemek için Android Studio > Ayarlar > Tuş eşleme'ye gidin ve tuş eşleme listesinde Logcat öğesini arayın. Daha fazla bilgi için 263475910 numaralı soruna bakın.

Bu sorun, Android Studio Electric Eel Patch 1'de Logcat kısayolunun kaldırılmasıyla çözülecektir.

Android Gradle eklentisiyle ilgili bilinen sorunlar

Bu bölümde, Android Gradle eklentisinin en son kararlı sürümünde bulunan bilinen sorunlar açıklanmaktadır.

Dinamik özellik kitaplığı bağımlılıklarının hepsi için hata analizi yapılmamış

Bir uygulama modülünden checkDependencies = true ile lint çalıştırıldığında, dinamik özellik kitaplığı bağımlılıkları uygulama bağımlılıkları da olmadıkları sürece kontrol edilmez (sorun #191977888). Geçici çözüm olarak, bu kitaplıklarda lint görevi çalıştırılabilir.

İmzalama dosyası satır sonu karakterleriyle adlandırılmış

JAR imzalama (v1 şeması), satır sonu karakterleri içeren dosya adlarını desteklemez (sorun #63885809).

Varyant çıkışlarını derleme sırasında değiştirmek işe yaramayabilir

Varyant çıkışlarını değiştirmek için Variant API'nin kullanılması yeni eklentide desteklenmiyor. Aşağıda gösterildiği gibi, derleme sırasında APK adını değiştirmek gibi basit görevlerde çalışmaya devam eder:

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

Ancak outputFile nesnelerine erişmeyi içeren daha karmaşık görevler artık çalışmıyor. Bunun nedeni, varyantlara özel görevlerin artık yapılandırma aşamasında oluşturulmamasıdır. Bu, eklentinin tüm çıkışlarını önceden bilmemesine neden olur, ancak yapılandırma sürelerini kısaltır.

manifestÇıkışFile artık kullanılamıyor

processManifest.manifestOutputFile() yöntemi artık kullanılamıyor ve bu yöntemi çağırdığınızda aşağıdaki hatayı alırsınız:

A problem occurred configuring project ':myapp'.
   Could not get unknown property 'manifestOutputFile' for task
   ':myapp:processDebugManifest' of type
   com.android.build.gradle.tasks.ProcessManifest.

Her bir varyantın manifest dosyasını almak için manifestOutputFile() çağrısı yapmak yerine, oluşturulan tüm manifestleri içeren dizinin yolunu döndürmek için processManifest.manifestOutputDirectory() yöntemini çağırabilirsiniz. Ardından bir manifest bulabilir ve mantığınızı buna uygulayabilirsiniz. Aşağıdaki örnekte, manifest'teki sürüm kodu dinamik olarak değiştirilmektedir:

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processManifest.doLast {
            // Stores the path to the maifest.
            String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
            // Stores the contents of the manifest.
            def manifestContent = file(manifestPath).getText()
            // Changes the version code in the stored text.
            manifestContent = manifestContent.replace('android:versionCode="1"',
                    String.format('android:versionCode="%s"', generatedCode))
            // Overwrites the manifest with the new text.
            file(manifestPath).write(manifestContent)
        }
    }
}

AGP 7.3.0 AIDL desteği ve Kotlin 1.7.x ile ilgili sorunlar

Kotlin 1.7.x'te KAPT ile AGP 7.3.0 kullanılması, belirli derleme varyantlarının AIDL kaynak kümelerinin kaldırılmasına neden olur. main/, derleme türleri, ürün aromaları ve ürün aromalarının kombinasyonları dahil olmak üzere diğer AIDL kaynak kümelerini kullanmaya devam edebilirsiniz. Varyanta özel AIDL kaynak gruplarını kullanmanız gerekiyorsa Kotlin 1.6.21'i kullanmaya devam edin.

Bilinen sorunlar düzeltildi

Bu bölümde, yakın zamandaki bir sürümde düzeltilen bilinen sorunlar açıklanmaktadır. Bu sorunlardan herhangi birini yaşıyorsanız Android Studio'yu en son kararlı sürüme veya önizleme sürümüne güncellemeniz gerekir.

Android Studio 2021.1.1'de düzeltildi

  • Eksik lint çıkışı: lint görevi UP-TO-DATE olduğunda, stdout ürününe yazdırılan lint metni çıkışı olmaz (sorun numarası 191897708). AGP 7.1.0-alpha05 sürümünde düzeltilmiştir.
  • Hilt eklentisini kullanan bir uygulama projesinin birim testiyle ilgili sorunlar: Birim testi sınıf yolu, enstrümante edilmemiş uygulama sınıflarını içerir. Yani Hilt, birim testleri çalıştırıldığında uygulama sınıflarını bağımlılık eklemeyi işlemesi için enstrümante etmez (sorun #213534628). AGP 7.1.1'de düzeltildi.

Android Studio 2020.3.1'de düzeltildi

  • Kotlin projelerinde lint istisnaları: checkDependencies = true değerini ayarlayan Kotlin projeleri, null işaretçi istisnaları veya hatalarıyla karşılaşabilir (sorun #158777858).

Android Studio 4.2'de düzeltildi

  • IDE, macOS Big Sur'da donuyor: Android Studio 4.1, bir iletişim kutusunu açtığınızda donabilir.

Android Studio 4.1'de düzeltildi

  • IDE'nin önceki sürümünden aktarılan bellek ayarlarını uygulamak için yeniden başlatın: Android Studio'yu güncelledikten sonra, IDE'nin önceki bir sürümünden taşınan bellek ayarlarını uygulamak için Android Studio'yu yeniden başlatmanız gerekir.
  • Özel izin dizelerine sahip manifest sınıfı artık varsayılan olarak oluşturulmuyor: Sınıfı oluşturmak istiyorsanız android.generateManifestClass = true değerini ayarlayın.

Android Studio 3.6'da düzeltildi

  • LineageOS'te APK yükleme hatası: Uygulamanızı LineageOS veya CyanogenMod'un belirli sürümlerini çalıştıran cihazlara dağıtmak başarısız olabilir ve INSTALL_PARSE_FAILED_NOT_APK istisnası atılabilir.

    Android Studio 3.6 Beta 1 ve sonraki sürümlerde IDE, uygulamanızı LineageOS veya CyanogenMod cihazlara dağıttığınızda tam uygulama yüklemesi gerçekleştirerek bu istisnayı ele alır. Bu işlem, dağıtım sürelerinin uzamasına neden olabilir.

Android Studio 3.5.2'de düzeltildi

  • Bozuk XML kod stili: XML kodunu düzenlerken, menü çubuğundan Kod > Kodu Yeniden Biçimlendir'i seçtiğinizde IDE yanlış bir kod stili uyguladı.

Android Studio 3.3.1'de düzeltildi

  • C++ tabanlı projeleri tararken bellek yetersizliği hataları: Gradle, aynı sürücüde birden fazla konumda C++ kodu bulunan bir projeyi tararken, tarama ilk ortak dizinin altındaki tüm dizinleri içerir. Çok sayıda dizin ve dosyanın taranması, bellek yetersizliği hatalarına neden olabilir.

    Bu sorun hakkında daha fazla bilgi edinmek için sorunla ilişkili hatayı okuyun.