Aracılığıyla paylaş


Android NDK

Önemli

Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.

Android NDK, C ve C++ kullanarak Android uygulamalarınızın bölümlerini uygulamanıza olanak tanır. Yerel kodda geçerli yığın izlemeleri almak için Android uygulamalarınız için Google Breakpad istemci kitaplığını kullanabilirsiniz. Yığın izlemeleri yalnızca bellek adresleri içerebilir. Çökmeleri okumak ve anlamak için gerekli olan sınıf adlarını, yöntemleri, dosya adlarını ve satır numaralarını göstermezler. Android NDK uygulamanızda bellek adreslerinin doğru çevrilmesi için her bir derleme için uygulama sembollerini yüklemeniz gerekmektedir.

NDK kilitlenmelerini bildirmeyi öğrenmek için Android uygulamaları için Android SDK belgelerine veya Unity uygulamaları için Unity SDK belgelerine bakın .

Diğer platformlardan Breakpad kilitlenmelerini App Center'a göndermek istiyorsanız, özel kilitlenme verilerini yükleme belgelerine bakın.

Sembolsüz kilitlenmeler

Simgesiz kilitlenmeler, simgeleri yüklemeden önce bile bazı ayrıntıları görüntüleyebilmeniz için App Center Diagnostics bölümünde görüntülenir. Bu kilitlenmelerin eksik simgeleri "simgelenmemiş" sekmesinde gösterilir. Eksik simgeler karşıya yüklenirse, simgelenmemiş kilitlenme grubu simgeleştirilmiş kilitlenme grubuyla değiştirilir.

Uyarı

App Center, sistem kitaplıklarından gelen çerçevelerin simgeselleştirmesini desteklemez. Android ve diğer platformlar için sistem ikili dosyalarının yüksek derecede parçalanmış olması (bu durum, belirli bir cihaz/işletim sistemi sürümü kombinasyonunda farklılık gösterebilir) göz önünde bulundurulduğunda, App Center sistem ikili dosyaları için simgeler sağlamaz ve sembolizasyon sırasında, sistem ikili dosyalarından gelen çerçeveleri otomatik olarak atlar.

.zip dosyasını karşıya yüklemek için oluşturun

App Center'ın sembolikleştirme için gerekli simgeleri almasının iki yolu vardır. App Center, projenizde kullanılan yerel ikili dosyalardan bunları oluşturabilir veya Breakpad simgelerini doğrudan yükleyebilirsiniz.

1. Seçenek: Yerel ikili dosyaları yükleyin

Projenin obj/local/$ABI/ dizinindeki tüm .so dosyalarını bir .zip dosyasına yerleştirin.

2. Seçenek: Breakpad sembollerini yükleme

  1. "Get debugging simgelerini alma" bölümündeki Breakpad belgelerinde açıklandığı gibi Breakpad araç zincirini kullanarak simgeleri dökün.
  2. Aşağıdaki yapıya sahip birsymbols.zip dosyası oluşturun:

Uyarı

Simgelerinizi macOS'tan yüklüyorsanız, simgelerinizi gereksiz klasörleri temizlemeniz gerekir; örneğin, __MACOS oluşturulur ve bunu silmek için kullanabilirsiniz zip -d <symbols.zip> __MACOSX/\*.

$ unzip -l symbols.zip
Archive:  symbols.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  07-22-13 15:07   symbols/
        0  07-22-13 15:07   symbols/libnative.so/
        0  07-22-13 15:07   symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
    12468  07-22-13 15:07   symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
        0  07-22-13 15:07   symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
    12467  07-22-13 15:07   symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
 --------                   -------
    24935                   6 files

Simgeler yükleniyor

Uyarı

App Center Derleme ve Dağıtım hizmeti sembolleri otomatik olarak Tanılama hizmetine iletebilir. Uygulamanızı derlemek ve son kullanıcılarınıza otomatik olarak dağıtmak için App Center kullanıyorsanız, simge dosyalarını aşağıdaki adımlarda açıklandığı gibi el ile edinmeniz ve karşıya yüklemeniz gerekmez.

App Center Portalı

  1. App Center'da oturum açın ve uygulamanızı seçin.
  2. Soldaki menüde Tanılama bölümüne ve ardından Sorunlar'a gidin.
  3. Uygulamanız henüz bir kilitlenme bildirmediyse Breakpad simgelerini karşıya yüklemek için API veya CLI kullanmanız gerekir.
  4. Uygulamanız zaten simge gerektiren kilitlenmeler bildirdiyse, Simgelenmemiş sekmesini kontrol edin ve eksik sembolleri olan bir sürüm grubu olmalıdır, üstüne tıklayarak dosyayı karşıya yüklemek için menüyü görüntüleyin.
  5. Simgeler App Center tarafından dizine alındıktan sonra kilitlenmeler sizin için sembolik hale gelir.

App Center API'si

API aracılığıyla sembolleri karşıya yükleme işlemi üç API çağrısı serisini içerir: biri arka ucumuzda yer ayırmak, biri dosyayı karşıya yüklemek için ve biri de karşıya yüklemenin durumunu güncelleştirmek için. İlk API çağrısının gövdesi, `symbol_type` öğesini `Breakpad` olarak ayarlamalıdır.

  1. POST isteğini symbol_uploads API'sine tetikle. Bu çağrı, dosyanız için arka uçta yer ayırır ve bir symbol_upload_id ve upload_url özelliği döndürür.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{JSON BODY}'
  1. İlk adımda döndürülen upload_url özelliğini kullanarak, PUT başlıklı üst bilgi ile bir "x-ms-blob-type: BlockBlob" isteği yapın ve dosyanızın disk üzerindeki konumunu belirtin. Bu çağrı, dosyayı arka uç depolama hesaplarımıza yükler. PUT Blob isteği üst bilgileri hakkında daha fazla bilgi edinin.
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. İlk adımda döndürülen PATCH özelliğini kullanarak symbol_uploads API'sine bir symbol_upload_id isteği gönderin. İsteğin gövdesinde, yükleme işleminin durumunu ayarlamak isteyip istemediğinizi belirtin: committed (başarıyla tamamlandı) veya aborted (başarısız oldu).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{ "status": "committed" }'

Uyarı

Sembol yükleme API'si 256 MB'tan büyük dosyalar için çalışmaz. Bu dosyaları karşıya yüklemek için App Center CLI'sini kullanın. App Center CLI depomuzdaki yönergeleri izleyerek App Center CLI'yi yükleyebilirsiniz.

App Center CLI

Sembol dosyalarını karşıya yüklemek için CLI'yi de kullanabilirsiniz:

appcenter crashes upload-symbols --breakpad {symbols file}

Sembolleri görmezden gelmek

App Center tüm simge dosyalarına sahip olmadığında kilitlenme raporlarını tam olarak simgelemez ve Kilitlenmeler, Simgelenmemiş sekmesinde listelenir. Erişiminiz varsa, bu sayfadan gerekli sembolleri yükleyebilirsiniz.

Simgeleri karşıya yükleyemiyorsanız, tabloda satırları seçip Sürümleri yoksay düğmesine tıklayarak bunları Yoksayıldı olarak işaretleyebilirsiniz. Bu düğme, App Center'a çökmeleri işlemesini ve mevcut simgeleri kullanarak mümkün olduğunca eksiksiz bir şekilde simgeleştirmesini söyler. İşleme alındıktan sonra, Kilitlenmeler sekmesinde kısmen sembolize edilmiş olarak görünürler. Yoksayıldı olarak işaretlenen aynı sembol kimliklerine de bağlı olan yeni çökmeler, sistemden geçen Simgelenmemiş sekmesini atlar.