Android Studio ve Android Gradle Eklentisi ile ilgili bilinen sorunlar

Bu sayfada, Android Studio Narwhal ve Android Gradle eklentisi 8.11.0 ile ilgili bilinen sorunlar takip edilmektedir. Burada yer almayan bir sorunla karşılaşırsanız lütfen hata bildirin.

Önizlemeye yükseltme: Android Studio ve Android Gradle eklentisinin her sürümü, kararlılığı ve performansı artırmayı 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 bilinen sorunlar açıklanmaktadır.

"Lansmandan önce" Gradle'a duyarlı Make olmadan yapılandırmanın çalıştırılması dağıtım hatasına neden oluyor

Android Studio Ladybug Feature Drop Canary 9'da, bu sürümle açılan projelerden çalıştırma yapılandırması bilgilerini kaldıran bir sorun vardı. Projenizi bir noktada bu sürümle açtıysanız ve uygulamanızı çalıştırmak "loading build artifacts" hatasına neden oluyorsa etkin çalıştırma yapılandırmasının "Before launch" (Başlatmadan önce) bölümünde "Gradle-aware Make" adımının bulunduğunu doğrulayın. Bunu doğrulamak için Run/Debug Configurations > Edit Configurations'ı (Çalıştırma/Hata Ayıklama Yapılandırmaları > Yapılandırmaları Düzenle) tıklayın, etkin çalıştırma yapılandırmasını tıklayın ve "Before launch" (Başlatmadan önce) bölümünde "Gradle-aware Make" (Gradle'ı bilen derleme) adımının bulunduğunu onaylayın. Bazı çalıştırma yapılandırmaları "Gradle-aware Make" adımı olmadan kasıtlı olarak ayarlanmış olabileceğinden Android Studio bu sorunu otomatik olarak düzeltemez.

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

"Değişiklikleri Uygula ve Etkinliği Yeniden Başlat" ile 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 durumu aktif olarak araştırmaktadır.

Firebase asistanı penceresinde hata mesajı gösteriliyor

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

Düzen Denetleyici ile görünümü izole edememe

Yerleştirilmiş Düzen İnceleyici'yi kullanarak bir görünümü yalıtma ö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 kullanılarak incelenemez

Layout Inspector'ı kullanırken tüm Compose düğümlerinin incelenebilir olmadığını fark ederseniz bu durum, Compose 1.5.0-alpha04 sürümünde düzeltilen bir hatadan kaynaklanıyor olabilir. Bu sorunu yaşıyorsanız Compose'u 1.5.0-alpha04 veya daha yeni bir sürüme yükselttiğinizden emin olun.

Oluşturma önizlemesi oluşturulurken hata oluştu

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 debugImplementation bağımlılığını eklediğinizden emin olun.androidx.lifecycle:lifecycle-viewmodel-savedstate

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

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 debugImplementation bağımlılığını eklediğinizden emin olun.androidx.customview:customview-poolingcontainer

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

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.

Build > Generate Signed Bundle / APK'ya gidip bir uygulama paketi veya APK için uygulama imzalama işlemini yapılandırmaya çalıştığınızda anahtar ve anahtar deposu için farklı şifreler girerseniz şu hata oluşabilir:

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 dosyaları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 .vmoptions dosyasında özel VM seçenekleri belirleyen bazı kullanıcılar için IDE başlatılamayabilir.

Bu sorunu gidermek için .vmoptions dosyasındaki özel seçenekleri yorum satırı yapmanızı (ör. "#" karakterini kullanarak) öneririz. .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şlamıyorsa aşağıdaki Yükseltme işleminden sonra Studio başlamıyor bölümüne bakın.

Veritabanı inceleyiciyi kullanan uygulamalar Android 11 emülatöründe kilitleniyor

Database Inspector'ı kullanan uygulamalar, Android 11 emülatöründe çalıştırılırken kilitlenebilir ve logcat'te aşağıdaki gibi bir hata görünür:

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

Bu sorunu düzeltmek için Tools > SDK Manager'a 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 revizyonlarını seçin.

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

Studio, yükseltme işleminden sonra başlamıyorsa sorun, Android Studio'nun önceki bir sürümünden içe aktarılan geçersiz bir Android Studio yapılandırmasından veya uyumsuz 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 derlemelerinde, yayın adayları ve kararlı sürümler için kullanılan AndroidStudio4.1 dizini yerine AndroidStudioPreview4.1 kullanılır.

Kotlin çok platformlu projelerinde derleme sorunu

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

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

Linux'ta belirli klavye kısayolları, varsayılan Linux klavye kısayolları ve KDE ile 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 izleyicisinde bulabilirsiniz.

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

ChromeOS'te metin, ö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ı tipini kullan'ı seçin.
  4. Yazı tipi boyutunu artırın.
  5. Ayarlar penceresinde Düzenleyici > Yazı tipi'ne gidin.
  6. Yazı tipi boyutunu artırın.
  7. Tamam'ı tıklayın.

Kod düzenleme

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

Kilitlenen klavye girişi: Linux'ta "iBus" sorunları

Linux'taki 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 senkronizasyondan kaynaklanır ve JetBrains ile iBus'a bildirilmiştir. Bu sorunu çözmek için şu anda üç geçici çözüm bulunmaktadır:

  • 1. geçici çözüm: iBus'ı eşzamanlı moda zorlayın. 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. 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'daki giriş yöntemlerini devre dışı bırakır. Çalıştırdığınız diğer uygulamalar etkilenmez. Android Studio çalışırken daemon'u yeniden başlatırsanız (örneğin, ibus-daemon -rd komutunu çalıştırarak) diğer tüm uygulamalar için giriş yöntemlerini devre dışı bırakmış olursunuz. Ayrıca, Android Studio'nun JVM'si de segmentasyon hatasıyla kilitlenebilir.
  • 3. geçici çözüm: Sonraki giriş kısayolunun Control+Space olarak ayarlanmadığından emin olmak için kısayol bağlamalarını tekrar kontrol edin. Bu kısayol, Android Studio'da kod tamamlama kısayolu olarak da kullanılır. Ubuntu 14.04 (Trusty), varsayılan kısayol olarak Super+Space'i kullanır 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 Tercihleri penceresini açın. Klavye kısayolları bölümünde Sonraki giriş yöntemi'ni işaretleyin. Control+Space olarak ayarlanmışsa Super+Space veya istediğiniz başka bir kısayola değiştirin.

Proje yapılandırması

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

Gradle Sync Failed: Broken Pipe

Sorun, Gradle daemon'ın IPv6 yerine IPv4 kullanmaya çalışmasıdır.

  • 1. geçici çözüm: Linux'ta ~/.profile veya ~/.bash_profile içine aşağıdakileri yerleştirin:
    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 Networking IPv6 User Guide'a (Ağ IPv6 Kullanıcı Kılavuzu) bakın.

Gradle senkronizasyonu veya SDK Manager'dan gelen "peer not authenticated" hataları

Bu hataların temel nedeni, $JAVA_HOME/jre/lib/certificates/cacerts içinde sertifikanın eksik olmasıdı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 keytool komutunu kullanarak proxy sunucusunun sertifikasını cacerts dosyasına eklemeniz gerekebilir.
  • Desteklenen ve değiştirilmemiş bir JDK'yı yeniden yükleyin. Ubuntu kullanıcılarını etkileyen ve boş /etc/ssl/certs/java/cacerts ile sonuçlanan bir bilinen sorun var. Bu sorunu çözmek için komut satırında aşağıdakileri yürütün:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

Dağıtma

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 izleme ile ilgili bir sorun nedeniyle artımlı güncellemeler uygulanmıyor.

Gradle sorunu 18149, Gradle 7.0 ve sonraki sürümlerini gerektirdiğinden 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 takip etmez. Bu durum, derleme sisteminin dosya değişikliklerini görmemesine ve dolayısıyla APK'ları güncellememesine neden olur. Yerel APK durumu cihazdakiyle aynı olduğundan artımlı dağıtım kodu hiçbir işlem 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ği sayesinde dosya değişiklikleri hakkında derleme sistemine doğru şekilde bildirim gönderilir ve artımlı değişiklikler başarıyla uygulanır.

macOS High Sierra'da Android Emulator HAXM

macOS High Sierra (10.13) üzerindeki Android Emulator'ın macOS ile en iyi uyumluluk ve kararlılık için HAXM 6.2.1 veya sonraki bir sürümü gerekir. Ancak macOS 10.13'te HAXM gibi çekirdek uzantılarının yüklenmesi daha karmaşık bir süreçtir. Çekirdek uzantısının kendisinin yüklenmesine manuel olarak izin vermeniz gerekir:

  1. Öncelikle SDK Manager'dan HAXM'nin 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 bakın.

Değişiklikleri Uygulama

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

Yeni uygulama adı uygulanmıyor

Uygulamanızı yeniden adlandırıp bu değişikliği uygulamaya çalıştığınızda güncellenen ad yansıtılmayabilir. Bu sorunu gidermek için Çalıştır'ı tıklayarak Çalıştır simgesi uygulamanızı yeniden dağıtın ve değişikliklerinizi görün.

Android çalışma zamanındaki sorun hata veriyor

Android 8.0 veya 8.1'i ç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 9.0 ve sonraki sürümlerde düzeltilen Android Runtime ile ilgili bir sorundan kaynaklanır. Bu 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 Ç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ızda hata ayıklama ve test etme ile ilgili bilinen sorunlar açıklanmaktadır.

Android Studio'dan çalıştırıldığında JUnit testlerinde sınıf yolundaki kaynaklar eksik

Java modüllerinizde belirli kaynak klasörler varsa bu kaynaklar, testler IDE'den çalıştırılırken bulunmaz. Testleri komut satırından Gradle kullanarak çalıştırmak işe yarar. 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, yalnızca tek bir klasörün sınıf yolu olarak kullanılması gerektiği için IntelliJ 13'ten itibaren ortaya çıkmaktadır. IntelliJ'nin oluşturucusu tüm kaynakları bu derleme klasörüne kopyalar ancak Gradle kaynakları kopyalamaz.

  • 1. geçici çözüm: Bir birim testi çalıştırmak yerine IDE'den Gradle check görevini çalıştırın.
  • 2. geçici çözüm: Kaynakları manuel olarak derleme klasörüne kopyalamak için derleme komut dosyanızı güncelleyin. Daha fazla bilgi için 13 numaralı yorumu inceleyin.

JUnit testlerini çalıştırmak kodu iki kez derleyebilir.

Yeni bir proje oluştururken JUnit şablon yapılandırması, iki "Yayın öncesi" adımıyla oluşturulabilir: Make ve Gradle-aware Make. Bu yapılandırma, oluşturulan tüm JUnit çalıştırma yapılandırmalarına yayılır.

  • Mevcut projede sorunu düzeltmek için Run > Edit Configurations'ı (Çalıştır > Yapılandırmaları Düzenle) tıklayın ve varsayılan JUnit yapılandırmasını yalnızca Gradle'a duyarlı Make adımını içerecek şekilde değiştirin.
  • Sorunu gelecekteki tüm projeler için düzeltmek istiyorsanız Dosya > Projeyi Kapat'ı tıklayın. Karşılama ekranını görmeniz gerekir. Ardından Yapılandır > Proje Varsayılanları > Çalıştırma Yapılandırmaları'nı tıklayın ve JUnit yapılandırmasını yalnızca Gradle'ı destekleyen Make adımını içerecek şekilde değiştirin.

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

Bir test yöntemine sağ tıklandığında 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ı (simge olarak Gradle logosu olanlar) çalışmaz.
  • JUnit çalıştırma yapılandırmaları (yeşil Android'siz bir simgeye sahip olanlar), yerel JVM'de çalıştırılamayan enstrümantasyon testleri için geçerli değildir.
Android Studio, belirli bir bağlamda (ör. belirli bir sınıfı veya yöntemi sağ tıklama) oluşturulan çalıştırma yapılandırmasını da hatırlar ve gelecekte farklı bir yapılandırmada çalıştırmayı teklif etmez. Bu sorunu düzeltmek için Run > Edit Configurations'ı (Çalıştır > Yapılandırmaları Düzenle) tıklayın ve yanlış oluşturulan yapılandırmaları kaldırın.

Yerel kodda hata ayıklarken Java ayırma noktaları ekleme

Uygulamanız yerel kodunuzdaki bir kesme noktasında duraklatıldığında Otomatik ve Çift hata ayıklayıcılar, ayarladığınız yeni Java kesme noktalarını hemen tanımayabilir. Bu sorunu önlemek için hata ayıklama oturumunu 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 kodda hata ayıklamak için Otomatik veya Çift hata ayıklayıcıyı kullanırken Java kodunuzdan yerel bir işlevin içine girerseniz (örneğin, hata ayıklayıcı, Java kodunuzda yerel bir işlevi çağıran bir satırda yürütmeyi duraklatır ve İçine Gir'i tıklarsınız) ve Java kodunuza geri dönmek isterseniz Programı Devam Ettir'i (Dışına Çık veya Üzerinden Geç yerine) tıklayın. Uygulama işleminiz duraklatılmış durumda 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.

Kitaplıklar yüklenirken yerel hata ayıklayıcı askıda kalıyor

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

Yerel hata ayıklayıcı, "Debugger process finished with exit code 127" (Hata ayıklayıcı işlemi 127 çıkış koduyla tamamlandı) hatasıyla kilitleniyor

Bu hata, yerel hata ayıklayıcı başlatılırken Linux tabanlı platformlarda oluşur. Bu hata, yerel hata ayıklayıcı tarafından gerekli olan kitaplıklardan birinin yerel sisteme yüklenmediğini gösterir. Eksik kitaplığın adı idea.log dosyasında yazıyor olabilir. Aksi takdirde, Android Studio yükleme dizinine gitmek ve hangi kitaplıkların eksik olduğunu öğrenmek için bin/lldb/bin/LLDBFrontend --version komut satırını yürütmek üzere bir terminal kullanabilirsiniz. Genellikle eksik kitaplık ncurses5 olur. Bunun nedeni, bazı yeni Linux dağıtımlarının ncurses6 sürümüne yükseltilmiş olmasıdır.

Profil oluşturucular

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

Yerel bellek profili oluşturucu: Uygulama başlatılırken profil oluşturma kullanılamaz

Yerel bellek profil oluşturucu şu anda uygulama başlatılırken kullanılamaz. Bu seçenek, gelecekteki bir sürümde kullanıma sunulacaktır.

Geçici çözüm olarak, başlatma profillerini yakalamak için Perfetto bağımsız komut satırı profil oluşturucusunu kullanabilirsiniz.

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

Sample Java Methods (Java Yöntemlerini Örnekle) veya Trace Java Methods (Java Yöntemlerini İzle) yapılandırmalarını seçtiğinizde Android Studio CPU Profiler'da "Kayıt durdurulamadı" hatalarıyla karşılaşabilirsiniz. Bunlar genellikle zaman aşımı hataları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ı, örneklenen yöntemlerden çok izlenen yöntemleri ve kısa kayıtlardan çok 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 yapmayı deneyebilirsiniz.

Profiler ile zaman aşımı sorunları yaşıyorsanız lütfen hata bildirin. Bildirime cihazlarınızın markasını/modelini ve idea.log ile logcat'ten ilgili girişleri ekleyin.

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 Profilers düzgün çalışmayabilir. Ayrıca, Yardım > Günlüğü Göster'i seçtiğinizde idea.log dosyasında "AdbCommandRejectedException" veya "Failed to connect port" (Bağlantı noktasına bağlanılamadı) hatası 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 Tools > SDK Manager'ı tıklayarak veya araç çubuğunda SDK Manager tıklayarak SDK Manager'ı 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, Build Output penceresinin çalışmasını engelliyor

CMake simple highlighter eklentisi kullanıldığında içeriklerin Build Output penceresinde görünmesi engellenir. Derleme çalışır ve Derleme Çıkışı sekmesi görünür ancak herhangi bir çıkış yazdırılmaz (204791544 numaralı sorun).

Yükleme sırası başlatmayı engelliyor

Eski bir sürümden önce Android Studio'nun daha yeni bir sürümünü yüklemek, eski sürümün başlatılmasını engelleyebilir. Örneğin, önce Android Studio'nun Canary sürümünü yükleyip ardından kararlı sürümü yükleyip başlatmaya çalışırsanız kararlı sürüm başlatılamayabilir. 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 Recorder, Compose ile çalışmaz

Espresso Test Recorder, Compose'u içeren projelerde çalışmaz. Compose içeren projeler için kullanıcı arayüzü testleri oluşturmayı öğrenmek istiyorsanız Compose 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 klavye haritasını silin veya yeniden eşleyin. Android Studio'da Logcat klavye haritalarını düzenlemek için Android Studio > Settings > Keymap'e (Android Studio > Ayarlar > Klavye Haritası) gidin ve klavye haritaları listesinde Logcat simgesini arayın. Daha fazla bilgi için 263475910 numaralı sorunu inceleyin.

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 bilinen sorunlar açıklanmaktadır.

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

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 (191977888 numaralı sorun). Geçici çözüm olarak, bu kitaplıklarda lint görevi çalıştırılabilir.

Satır başı karakterleriyle adlandırılmış imzalama dosyası

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

Derleme zamanında varyant çıkışlarını değiştirme işlemi çalışmayabilir.

Varyant API'sini kullanarak varyant çıkışlarını değiştirme, yeni eklentiyle birlikte bozuldu. Aşağıda gösterildiği gibi, derleme sırasında APK adını değiştirme gibi basit görevler için hâlâ çalışır:

// 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, yapılandırma aşamasında artık varyanta özel görevler oluşturulmamasıdır. Bu durum, eklentinin tüm çıkışlarını önceden bilmemesine neden olur ancak yapılandırma sürelerinin kısalmasını da 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ıyorsunuz:

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 için manifest dosyasını almak üzere manifestOutputFile() işlevini çağırmak yerine, oluşturulan tüm manifestleri içeren dizinin yolunu döndürmek için processManifest.manifestOutputDirectory() işlevini çağırabilirsiniz. Ardından bir manifest bulup mantığınızı uygulayabilirsiniz. Aşağıdaki örnekte, manifest dosyasındaki 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'ı kullanmak, belirli derleme varyantları için AIDL kaynak kümelerinin kaldırılmasına neden olur. main/, derleme türleri, ürün çeşitleri ve ürün çeşitlerinin 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, son sürümde düzeltilen bilinen sorunlar açıklanmaktadır. Bu sorunlardan herhangi birini yaşıyorsanız Android Studio'yu en son kararlı veya önizleme sürümüne güncellemeniz gerekir.

Android Studio 2021.1.1'de düzeltildi

  • Lint çıktısı eksik: Lint görevi UP-TO-DATE olduğunda stdout'ye lint metin çıktısı yazdırılmıyor (191897708 numaralı sorun). AGP 7.1.0-alpha05 sürümünde düzeltildi.
  • Hilt eklentisini kullanan bir uygulama projesinde birim testiyle ilgili sorunlar: Birim testi sınıf yolu, enstrümantasyon uygulanmamış uygulama sınıflarını içerir. Bu nedenle, Hilt, birim testleri çalıştırılırken bağımlılık eklemeyi işlemek için uygulama sınıflarına enstrümantasyon uygulamaz (213534628 numaralı sorun). AGP 7.1.1'de düzeltildi.

Android Studio 2020.3.1'de düzeltildi

  • Kotlin projelerindeki Lint istisnaları: checkDependencies = true ayarını yapan Kotlin projelerinde null işaretçi istisnaları veya hataları oluşabilir (158777858 numaralı sorun).

Android Studio 4.2'de düzeltildi

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

Android Studio 4.1'de düzeltildi

  • IDE'nin önceki sürümündeki bellek ayarlarını uygulamak için yeniden başlatma: 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 dizeleri içeren 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ı oluşturabilir.

    Android Studio 3.6 Beta 1 ve sonraki sürümlerde IDE, uygulamanızı LineageOS veya CyanogenMod cihazlarına dağıttığınızda tam uygulama yüklemesi yaparak bu istisnayı ele alır. Bu durum, dağıtım sürelerinin uzamasına neden olabilir.

Android Studio 3.5.2'de düzeltildi

  • Bozuk XML kodu stili: XML kodu düzenlenirken IDE, menü çubuğundan Code > Reformat Code (Kod > Kodu Yeniden Biçimlendir) seçildiğinde yanlış bir kod stili uyguluyordu.

Android Studio 3.3.1'de düzeltildi

  • C++ tabanlı projeler taranırken bellek yetersiz hatası: Gradle, aynı sürücüde birden fazla konumda C++ kodu bulunan bir projeyi taradığında tarama, ilk ortak dizinin altındaki tüm dizinleri içerir. Çok sayıda dizin ve dosyanın taranması, bellek yetersizliği hatalarına yol açabilir.

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