Bagikan melalui


Android NDK

Penting

Visual Studio App Center dihentikan pada 31 Maret 2025, kecuali untuk fitur Analitik dan Diagnostik, yang akan terus didukung hingga 30 Juni 2026. Pelajari lebih lanjut.

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 kegagalan. 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 Breakpad crash dari platform lain ke App Center, lihat dokumentasi unggahan crash kustom.

Kerusakan yang belum disimbolkan.

Crash yang belum disimbolikasi 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 bersimbol". Jika simbol yang hilang tersebut diunggah, grup crash yang tidak bersimbol akan digantikan oleh grup crash bersimbol.

Nota

App Center tidak mendukung simbolikasi frame yang berasal dari pustaka sistem. Mengingat tingginya fragmentasi file biner sistem untuk Android dan platform lainnya – yang mungkin berbeda pada setiap kombinasi perangkat/versi OS – App Center tidak menyediakan simbol untuk file biner sistem itu sendiri dan secara otomatis melewati bingkai dari file biner sistem dalam proses simbolisasi.

Membuat file .zip untuk diunggah

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

Opsi 1: Unggah biner asli

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

Opsi 2: Unggah simbol Breakpad

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

Nota

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

Nota

Layanan Build dan Distribusi App Center dapat secara otomatis meneruskan simbol ke layanan Diagnostik. Jika Anda menggunakan App Center untuk membangun 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 Belum Disimbolikasi dan seharusnya ada grup versi dengan simbol yang hilang, klik pada grup tersebut untuk mengungkapkan menu dan unggahlah file dari menu tersebut.
  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 Memicu permintaan ke API symbol_uploads. Panggilan ini mengalokasikan ruang di backend kami untuk file Anda dan mengembalikan properti symbol_upload_id 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 upload_url yang dikembalikan dari langkah pertama, buat permintaan PUT 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 telah symbol_upload_id dikembalikan dari langkah pertama. Dalam isi permintaan, tentukan apakah Anda ingin mengatur status unggahan ke committed (berhasil menyelesaikan) 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" }'

Nota

API pengunggahan simbol tidak berfungsi untuk file yang lebih besar dari 256MB. Gunakan CLI App Center untuk mengunggah file-file ini. Anda dapat menginstal CLI App Center 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

Ketika App Center tidak memiliki semua file simbol untuk mensimbolikasi laporan crash semuanya, crash akan tercantum di tab Belum Terangkai Simbol. Simbol yang diperlukan dapat diunggah dari halaman ini, jika Anda memiliki akses ke simbol tersebut.

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