Bagaimana cara menambahkan simbol debug ke build.gradle

Saya telah membuat versi Android untuk aplikasi Flutter saya.

Lalu saya membuat rilis pengujian internal. Ini menunjukkan peringatan

App Bundle ini berisi kode asli, dan Anda belum mengunggah simbol debug. Kami menyarankan Anda mengunggah file simbol untuk membuat error dan ANR Anda lebih mudah dianalisis dan di-debug.

Pada dasarnya yang harus saya lakukan adalah menambahkan file berikut ke build.gradle sesuai dengan tautan yang mereka tampilkan.

android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }

Saya berasumsi yang mereka bicarakan adalah Android/app/build.gradle.

Tidak yakin persis di mana di file itu saya harus menambahkan baris ini.

Bisakah seseorang menunjukkan di mana menambahkan baris ini?


person Janaka    schedule 12.08.2020    source sumber
comment
adakah yang bisa memberikan bantuan dalam hal ini?   -  person Janaka    schedule 13.08.2020


Jawaban (4)


Untuk menggunakan opsi ndk debugSymbolLevel seperti yang tertulis di dokumen Anda memerlukan android plugin gradle 4.1 atau lebih baru. Pada saat penulisan, versi 4.1 terbaru adalah 4.1.2

Anda juga perlu menginstal ndk dan cmake untuk Android studio.

Di Android build.gradle Anda perlu menyetel plugin Android gradle versi 4.1.2:

buildscript {
    ...
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.2'
        ...
    }

Kemudian di android/app build.gradle tambahkan:

...
android {
    ...
    ndkVersion "21.3.6528147" # you see the ndk version in the android studio sdk-manager
    ...
    buildTypes {
        release {
            ...
            ndk {
                debugSymbolLevel 'SYMBOL_TABLE'
            }
        }   
    }
}

ketika Anda menjalankan: flutter build appbundle itu akan selesai setelah beberapa saat dengan appbundle yang ukurannya dua kali lipat.

person Adam    schedule 16.08.2020
comment
Minimum gradle-6.6.1-all.zip dalam gradle-wrapper.properties diperlukan untuk plugin gradle (4.2.0-alpha12') terbaru - person Pratik Butani; 25.09.2020
comment
gradle-6.5 adalah minimum. Ubah saja versi plugin: classpath 'com.android.tools.build:gradle:4.1.0' di file gradle tingkat atas. Ini akan meminta untuk memperbaiki gradle dan akan menginstal 6.5. Perlu diingat, ini memerlukan Android studio versi 4.1 atau lebih tinggi. - person user3508953; 16.10.2020
comment
Luar biasa, terima kasih! Pertanyaan: mengapa memilih 'SYMBOL_TABLE' daripada 'FULL' ? - person pierrea; 23.10.2020
comment
Hai @pierrea, kedua atribut dijelaskan di tautan pertama jawaban. Pada dasarnya berapa banyak informasi debug yang ingin Anda sertakan: Note: There is a 300 MB limit for the native debug symbols file. If your debug symbols footprint is too large, use SYMBOL_TABLE instead of FULL to decrease the file size. - person Adam; 25.10.2020
comment
Tahukah Anda jika opsi konfigurasi ini juga mengambil simbol debug unstripped yang dikemas dalam library *.aar yang diunduh sebagai artefak Maven? - person JJD; 03.02.2021
comment
Jika appbundle berukuran dua kali lipat, apakah aplikasi di play store juga berukuran dua kali lipat? - person kyu; 12.05.2021
comment
Masuk akal bagi saya. Anda juga dapat menjalankan flutter build appbundle --analyze-size untuk melihat isinya. Biasanya Anda akan menambahkan informasi debug ke build Anda untuk pengujian beta tetapi tidak dalam rilis produksi. - person Adam; 13.05.2021

Ada dua tempat di app/build.gradle tempat Anda dapat menentukan kumpulan simbol debug dengan aplikasi Anda. Jika Anda menggunakan android.defaultConfig.ndk.debugSymbolLevel ini akan menerapkannya ke semua tipe build (yaitu, build debug dan rilis). Di sisi lain, jika Anda menggunakan android.buildTypes.release.ndk.debugSymbolLevel itu hanya akan berlaku untuk versi rilis Anda.

Opsi ini harus ditambahkan ke file app/build.gradle Anda seperti yang Anda duga dengan benar. Saat Anda melihat properti build yang ada dalam notasi titik-titik ini, properti tersebut sebenarnya terkait dengan blok bersarang di build.gradle, yang akan terlihat seperti ini:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId 'com.example.foo'
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 42
        versionName "4.0.2"
        ndk {
            debugSymbolLevel 'SYMBOL_TABLE'
        }
    }
    // Rest of the file
}

HTH

person Alberto    schedule 14.08.2020

Gunakan Android Versi 4.1 ke atas saat ini tersedia 4.1 RC 3 dan 4.2 Canary 13, dan gunakan juga com.android.tools.build:gradle 4.1 ke atas, Anda dapat mencari versi yang sesuai dari sini

Kemudian gunakan baris ini di Android -› defaultConfig di file build.gradle aplikasi Anda

    ndk { debugSymbolLevel 'FULL' }
person Sid.The.Biker    schedule 07.10.2020

Jika tidak ada solusi yang berhasil, Anda juga dapat membuat Contoh Aplikasi JNI dari template proyek Android Studio. Bangun dan periksa apakah berhasil dibuat dan diinstal pada perangkat.

Saya telah memeriksa aplikasinya build.gradle, memeriksa build.gradle Flutter saya dan saya menambahkan untuk membuatnya berfungsi:

defaultConfig {

    // append below:
    externalNativeBuild {
            cmake {
                cppFlags "-std=c++17"
            }
        }
}

person Michał Dobi Dobrzański    schedule 23.04.2021