Android NDK

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Android NDK memungkinkan Anda mengimplementasikan bagian aplikasi Android menggunakan C dan C++. Anda dapat menggunakan pustaka klien Google Breakpad untuk aplikasi Android Anda untuk menerima jejak tumpukan yang valid dalam kode asli. Jejak tumpukan mungkin hanya berisi alamat memori. Mereka tidak menampilkan nama kelas, metode, nama file, dan nomor baris yang diperlukan untuk membaca dan memahami crash. Untuk mendapatkan alamat memori yang diterjemahkan untuk aplikasi Android NDK, Anda harus mengunggah simbol aplikasi untuk setiap build.

Untuk mempelajari cara melaporkan crash NDK, lihat dokumentasi Android SDK untuk aplikasi Android, atau dokumentasi Unity SDK untuk aplikasi Unity.

Jika Anda ingin mengirim Crash Breakpad dari platform lain ke App Center, lihat dokumentasi unggahan crash kustom.

Crash yang tidak sinkmbolik

Crash yang tidak terimbolikasi ditampilkan di bagian Diagnostik App Center sehingga Anda dapat melihat beberapa detail bahkan sebelum mengunggah simbol. Simbol yang hilang dari crash ini akan ditampilkan di tab "tidak resymbolikasi". Jika simbol yang hilang diunggah, grup crash yang tidak resymbolikasi akan digantikan oleh grup crash simbolis.

Catatan

App Center tidak mendukung simbolisasi bingkai yang berasal dari pustaka sistem. Mengingat fragmentasi tinggi biner sistem untuk Android dan platform lain - yang mungkin berbeda pada kombinasi versi perangkat/OS tertentu - App Center tidak menyediakan simbol itu sendiri untuk biner sistem dan secara otomatis melompati bingkai dari biner sistem dalam simbol.

Membuat file .zip untuk diunggah

Ada dua cara bagi App Center untuk mengambil simbol yang diperlukan untuk simbolikasi. App Center dapat menghasilkannya dari biner asli yang digunakan dalam proyek Anda, atau Anda dapat mengunggah simbol Breakpad secara langsung.

Opsi 1: Mengunggah biner asli

Masukkan semua file .so dari direktori proyek obj/local/$ABI/ ke dalam file .zip.

Opsi 2: Mengunggah simbol Breakpad

  1. Buang simbol menggunakan toolchain Breakpad seperti yang dijelaskan dalam dokumentasi Breakpad di bawah bagian "Dapatkan simbol penelusuran kesalahan".
  2. Buat file symbols.zip dengan struktur berikut:

Catatan

Jika Anda mengunggah simbol dari macOS, maka Anda harus membersihkan simbol dari folder asing apa pun, misalnya __MACOS akan dihasilkan dan untuk menghapusnya, Anda dapat menggunakan 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

Mengunggah simbol

Catatan

Layanan Build dan Distribusi App Center dapat secara otomatis meneruskan simbol ke layanan Diagnostik. Jika Anda menggunakan App Center untuk membuat dan mendistribusikan aplikasi secara otomatis ke pengguna akhir, Anda tidak perlu mendapatkan dan mengunggah file simbol secara manual seperti yang dijelaskan dalam langkah-langkah di bawah ini.

Portal Pusat Aplikasi

  1. Masuk ke App Center dan pilih aplikasi Anda.
  2. Di menu sebelah kiri, navigasikan ke bagian Diagnostik , lalu Masalah.
  3. Jika aplikasi Anda belum melaporkan crash, Anda harus menggunakan API atau CLI untuk mengunggah simbol Breakpad.
  4. Jika aplikasi Anda sudah melaporkan crash yang memerlukan simbol, periksa tab Tidak sinkmbolik dan harus ada grup versi dengan simbol yang hilang, klik untuk mengungkapkan menu untuk mengunggah file.
  5. Setelah simbol diindeks oleh App Center, crash akan dilambangkan untuk Anda.

App Center API

Proses untuk mengunggah simbol melalui API melibatkan serangkaian tiga panggilan API: satu untuk mengalokasikan ruang di backend kami, satu untuk mengunggah file, dan satu untuk memperbarui status unggahan. Isi panggilan API pertama harus diatur symbol_type ke Breakpad.

  1. POST Picu permintaan ke API symbol_uploads. Panggilan ini mengalokasikan ruang di backend kami untuk file Anda dan mengembalikan symbol_upload_id properti dan upload_url .
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. Menggunakan properti yang upload_url dikembalikan dari langkah pertama, buat PUT permintaan dengan header : "x-ms-blob-type: BlockBlob" dan berikan lokasi file Anda di disk. Panggilan ini mengunggah file ke akun penyimpanan backend kami. Pelajari selengkapnya tentang header permintaan PUT Blob .
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. Buat PATCH permintaan ke API symbol_uploads menggunakan properti yang symbol_upload_id dikembalikan dari langkah pertama. Dalam isi permintaan, tentukan apakah Anda ingin mengatur status unggahan ke committed (berhasil diselesaikan) proses pengunggahan, atau aborted (tidak berhasil diselesaikan).
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" }'

Catatan

SIMBOL mengunggah API tidak berfungsi untuk file yang lebih besar dari 256MB. Gunakan App Center CLI untuk mengunggah file-file ini. Anda dapat menginstal App Center CLI dengan mengikuti instruksi di repositori CLI App Center kami.

App Center CLI

Anda juga dapat menggunakan CLI untuk mengunggah file simbol:

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

Mengabaikan simbol

Saat App Center tidak memiliki semua file simbol untuk sepenuhnya melambangkan laporan crash, crash dicantumkan di tab Tidak symbolikat . Simbol yang diperlukan diunggah dari halaman ini jika Anda memiliki akses ke simbol tersebut.

Jika Anda tidak dapat mengunggah simbol, Anda bisa menandainya sebagai Diabaikan dengan memilih baris dalam tabel dan mengklik tombol Abaikan versi . Tombol ini memberi tahu App Center untuk memproses crash dan melambangkannya sepenuhnya dengan simbol pada file. Setelah selesai diproses, mereka akan muncul di tab Crash yang sebagian dilambangkan. Crash baru yang juga bergantung pada ID simbol yang sama yang ditandai sebagai diabaikan akan melewati tab Tidak Terimbolikasi saat masuk dan mengalir melalui sistem.