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 bildirin.

Ö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ü izole etme özelliği geçici olarak kullanılamıyor. 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 için debugImplementation bağımlılık 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ırken hata

Android Studio, 4.2 sürümünden itibaren JDK 11'de çalışı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 mağazası için farklı şifreler girmeniz aşağıdaki hataya neden olabilir:

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 varsayılan durumuna sıfırlar ve tüm üçüncü taraf eklentileri kaldırılır.

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 projelerde 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. Çakışan bu klavye kısayolları Android Studio'da beklendiği gibi çalışmayabilir.

Bu sorunla ilgili daha fazla bilgiyi (olası geçici çözümler dahil) IntelliJ'in hata takipçisinde bulabilirsiniz.

ChromeOS'teki 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ırmak.
  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.

Donmuş klavye girişi - Linux'da "iBus" sorunları

Linux'daki iBus daemon ile Android Studio 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ında eksik senkronizasyon nedeniyle tetiklenir ve JetBrains ile iBus'a bildirilmiştir. Bu sorun için şu anda üç geçici çözüm mevcuttur:

  • 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
  • 2. geçici çözüm: Android Studio'da iBus girişini devre dışı bırakın. iBus girişini yalnızca Android Studio için devre dışı bırakmak istiyorsanız komut satırında şunları çalıştırın:
    $ XMODIFIERS= ./bin/studio.sh
    Bu geçici çözüm, çalıştırmakta olabileceğiniz diğer uygulamaların giriş yöntemlerini değil, yalnızca Android Studio'nun giriş yöntemlerini devre dışı bırakır. 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.
  • 3. geçici çözüm: Sonraki giriş kısayolu'nun Android Studio'daki kod tamamlama kısayolu da olduğundan, bu kısayolun Kontrol+Boşluk tuşlarına ayarlanmadığından 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 daemon'ı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 senkronizasyonundan 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ı düzeltmek 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 ve /etc/ssl/certs/java/cacerts'nin boş görünmesine yol açan bilinen bir sorun vardı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ım

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ında kaydedilen projelerde Gradle dosya izlemeyle ilgili bir sorun nedeniyle artımlı güncellemeler uygulanmıyor

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, Gradle dosya izleme özelliğiyle derleme sistemi dosya değişiklikleri hakkında gerektiği gibi 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 süreci 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üklenmesi engellendi uyarısını 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 Uygula ile ilgili bilinen sorunlar açıklanmaktadır.

Yeni uygulama adı uygulanmadı

Uygulamanızı yeniden adlandırdıktan sonra bu değişikliği uygulamaya çalışırsanız güncellenen ad yansıtılmayabilir. Bu sorunu gidermek için uygulamanızı yeniden dağıtmak ve değişikliklerinizi görmek üzere Çalıştır'ı tıklayınÇalıştır simgesi.

Android Runtime'daki sorun hata veriyor

Android 8.0 veya 8.1 yüklü bir cihaz kullanıyorsanız belirli türde değişiklikleri uygulamaya çalışırken "VERIFICATION_ERROR" mesajlarıyla karşılaşabilirsiniz (özellikle Kotlin kullanıyorsanız). Bu mesaj, Android Runtime'ta bulunan ve Android 9.0 ve sonraki sürümlerde düzeltilen bir sorundan kaynaklanmaktadır. Sorun, Değişiklikleri Uygula'nın başarısız olmasına neden olsa da değişikliklerinizi görmek için uygulamanızı tekrar Çalıştırabilirsiniz Çalıştır simgesi. Ancak cihazı Android 9.0 veya sonraki bir sürüme yükseltmenizi öneririz.

Hata ayıklama ve test

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. Gradle'i komut satırından kullanarak test çalıştırabilirsiniz. Gradle check görevini IDE'den yürütmek de işe yarar. 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 göz atı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'den haberdar 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örürsünüz. 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ıklama sırasında Java durma 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 yükselttikten 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, Linux tabanlı platformlarda yerel hata ayıklayıcı başlatılırken ortaya çıkar. Bu hata, yerel hata ayıklayıcının ihtiyaç duyduğu kitaplıklardan birinin yerel sisteme yüklenmediğini 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. Bazı yeni Linux dağıtımları ncurses6'a yükseltildiğinden, eksik kitaplık genellikle ncurses5 olur.

Profil oluşturucular

Bu bölümde, profil oluşturucularla ilgili bilinen sorunlar açıklanmaktadır.

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

Yerel Bellek Profilleyici, uygulama başlatılırken şu anda kullanılamıyor. 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 genellikle zaman aşımı hatasıdır. Özellikle idea.log dosyasında aşağıdaki hata mesajını görüyorsanız:

Wait for ART trace file timed out

Zaman aşımı hataları, izlenen yöntemleri örneklenen yöntemlere göre daha fazla, uzun kayıtları ise kısa kayıtlara göre daha fazla etkiler. 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 Tools 29.0.3 kullanılırken yerel hata ayıklama ve Android Studio profilleyicileri düzgün çalışmayabilir. Ayrıca, Yardım > Günlüğü Göster'i seçtiğinizde idea.log dosyasında "AdbCommandRejectedException" 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-Tools'un yanındaki onay kutusunu tıklayarak onay işareti görünmesini sağlayın. Sol sütunda bir indirme simgesi görünür.
  3. Uygula veya Tamam'ı tıklayın.

Eklenti, Derleme Çıktısı 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ü başlatmak 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 Recorder, Oluştur ile çalışmaz

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ızı engelleyebilir. Bu sorunu gidermek için çakışan Logcat tuş haritasını silin veya yeniden eşleyin. Android Studio'da Logcat tuş haritalarını düzenlemek için Android Studio > Ayarlar > Tuş Haritası'na gidin ve tuş haritaları listesinde Logcat simgesini 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.

Tüm dinamik özellik kitaplığı bağımlılıkları lint denetiminden geçmez

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 zamanı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ştirme gibi basit görevler için ç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 durum, eklentinin tüm çıkışlarını önceden bilmemesine neden olur ancak yapılandırma sürelerinin de kısalmasını sağlar.

manifestOutputFile 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 varyantın manifest dosyasını almak için manifestOutputFile() işlevini çağırmanın yerine, oluşturulan tüm manifest dosyalarını içeren dizinin yolunu döndürmek için processManifest.manifestOutputDirectory() işlevini ç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 kümelerini 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'ye lint metni çıkışı yazdırılmaz (sorun #191897708). AGP 7.1.0-alpha05'te düzeltildi.
  • 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.