Saya telah membaca posting lain tentang melacak alasan mendapatkan SIGSEGV
aplikasi Android. Saya berencana untuk menjelajahi aplikasi saya untuk kemungkinan NullPointers yang terkait dengan penggunaan Canvas, tetapi SIGSEGV
barfs saya mendapatkan alamat memori yang berbeda setiap kali. Plus saya sudah melihat code=1
dan code=2
. Jika alamat memori itu 0x00000000
, saya punya petunjuk itu adalah NullPointer.
Yang terakhir saya dapatkan adalah code=2
:
A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)
Ada saran tentang cara melacak ini?
Saya memiliki tersangka, tetapi saya belum tertarik untuk mencobanya. Aplikasi saya menggunakan OSMDroid API untuk pemetaan offline. Kelas OverlayItem mewakili marker / node pada peta. Saya memiliki Layanan yang mengumpulkan data melalui jaringan untuk mengisi OverlayItem yang kemudian ditampilkan di peta. Dalam upaya menyederhanakan desain saya, saya memperluas OverlayItem ke dalam kelas NodeOverlayItem saya sendiri, yang mencakup beberapa atribut tambahan yang saya gunakan dalam Aktivitas UI dan dalam Layanan. Ini memberi saya satu titik informasi Item untuk UI dan Layanan. Saya menggunakan Intents untuk menyiarkan Kegiatan untuk menyegarkan peta UI ketika sesuatu berubah. Aktivitas mengikat ke Layanan dan ada metode Layanan untuk mendapatkan daftar NodeOverlayItem. Saya pikir itu mungkin penggunaan API OverlayItem OSMDroid, dan Layanan saya memperbarui informasi simpul pada saat yang sama. (masalah konkurensi)
Saat saya menulis ini, saya pikir itulah masalahnya. Sakit kepala tidak memecah Node dan OverlayItem dari NodeOverlayItem, itu karena Kegiatan akan memerlukan beberapa data dari Node, yang dimiliki Layanan. Ditambah lagi saat Activity dibuat (onResume, dll ...) objek OverlayItem perlu dibuat ulang dari data Node yang telah dipertahankan oleh Layanan ketika Activity sedang tidak ada. mis. Anda memulai aplikasi, Layanan mengumpulkan data, UI menampilkannya, Anda pergi ke Rumah, lalu kembali ke aplikasi, Kegiatan perlu menarik dan membuat kembali OverlayItem dari data simpul Layanan terbaru.
Saya tahu ini bukan pertanyaan yang bagus atau jelas. Ini seperti semua pertanyaan SO saya bersifat khusus atau tidak jelas. Jika ada yang punya saran tentang bagaimana menafsirkan SIGSEGV
kesalahan - kesalahan itu, itu akan sangat dihargai!
UPDATE Inilah crash terbaru yang ditangkap selama sesi debug. Saya memiliki 3 perangkat ini yang digunakan untuk pengujian dan mereka tidak semua crash andal ketika saya mengembangkan dan menguji. Saya memasukkan sedikit tambahan hanya agar pencatatan GC dapat dicatat. Anda bisa melihat masalahnya mungkin tidak terkait dengan kehabisan memori.
03-03 02:02:38.328: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.328: I/CommService(7477): Already processed this packet. It's a re-broadcast from another node, or from myself. It's not a repeat broadcast though.
03-03 02:02:38.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:38.460: D/CommService(7477): Monitoring nodes...
03-03 02:02:38.515: D/dalvikvm(7477): GC_CONCURRENT freed 2050K, 16% free 17151K/20359K, paused 3ms+6ms
03-03 02:02:38.515: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.515: D/CommService(7477): Forwarding packet (4f68802cf10684a83ac4936ebb3c934d) along to other nodes.
03-03 02:02:38.609: I/CommService(7477): Received packet from: 192.168.1.100
03-03 02:02:38.609: D/CommService(7477): Forwarding packet (e4bc81e91ec92d06f83e03068f52ab4) along to other nodes.
03-03 02:02:38.609: D/CommService(7477): Already processed this packet: 4204a5b27745ffe5e4f8458e227044bf
03-03 02:02:38.609: A/libc(7477): Fatal signal 11 (SIGSEGV) at 0x68f52abc (code=1)
03-03 02:02:38.914: I/DEBUG(4008): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-03 02:02:38.914: I/DEBUG(4008): Build fingerprint: 'Lenovo/IdeaTab_A1107/A1107:4.0.4/MR1/eng.user.20120719.150703:user/release-keys'
03-03 02:02:38.914: I/DEBUG(4008): pid: 7477, tid: 7712 >>> com.test.testm <<<
03-03 02:02:38.914: I/DEBUG(4008): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 68f52abc
03-03 02:02:38.914: I/DEBUG(4008): r0 68f52ab4 r1 412ef268 r2 4d9c3bf4 r3 412ef268
03-03 02:02:38.914: I/DEBUG(4008): r4 001ad8f8 r5 4d9c3bf4 r6 412ef268 r7 4c479df8
03-03 02:02:38.914: I/DEBUG(4008): r8 4d9c3c0c r9 4c479dec 10 46cf260a fp 4d9c3c24
03-03 02:02:38.914: I/DEBUG(4008): ip 40262a04 sp 4d9c3bc8 lr 402d01dd pc 402d0182 cpsr 00000030
03-03 02:02:38.914: I/DEBUG(4008): d0 00000001000c0102 d1 3a22364574614c7d
03-03 02:02:38.914: I/DEBUG(4008): d2 403fc0000000007d d3 363737343433350a
03-03 02:02:38.914: I/DEBUG(4008): d4 49544341223a2273 d5 6f6567222c224556
03-03 02:02:38.914: I/DEBUG(4008): d6 3a223645676e6f4c d7 000000013835372d
03-03 02:02:38.914: I/DEBUG(4008): d8 0000000000000000 d9 4040000000000000
03-03 02:02:38.914: I/DEBUG(4008): d10 0000000000000000 d11 4040000000000000
03-03 02:02:38.914: I/DEBUG(4008): d12 4040000000000000 d13 0000000000000021
03-03 02:02:38.914: I/DEBUG(4008): d14 0000000000000000 d15 0000000000000000
03-03 02:02:38.914: I/DEBUG(4008): d16 3fe62e42fefa39ef d17 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008): d18 3fe62e42fee00000 d19 0000000000000000
03-03 02:02:38.914: I/DEBUG(4008): d20 0000000000000000 d21 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008): d22 4028000000000000 d23 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008): d24 0000000000000000 d25 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008): d26 0000000000000000 d27 c028000000000000
03-03 02:02:38.914: I/DEBUG(4008): d28 0000000000000000 d29 3ff0000000000000
03-03 02:02:38.914: I/DEBUG(4008): d30 3ff0000000000000 d31 3fecccccb5c28f6e
03-03 02:02:38.914: I/DEBUG(4008): scr 60000013
03-03 02:02:39.046: I/DEBUG(4008): #00 pc 0006b182 /system/lib/libcrypto.so (EVP_DigestFinal_ex)
03-03 02:02:39.046: I/DEBUG(4008): #01 pc 0006b1d8 /system/lib/libcrypto.so (EVP_DigestFinal)
03-03 02:02:39.054: I/DEBUG(4008): #02 pc 0001f814 /system/lib/libnativehelper.so
03-03 02:02:39.054: I/DEBUG(4008): #03 pc 0001ec30 /system/lib/libdvm.so (dvmPlatformInvoke)
03-03 02:02:39.054: I/DEBUG(4008): #04 pc 00058c70 /system/lib/libdvm.so (_Z16dvmCallJNIMethodPKjP6JValuePK6MethodP6Thread)
03-03 02:02:39.054: I/DEBUG(4008): code around pc:
03-03 02:02:39.054: I/DEBUG(4008): 402d0160 0003151e 4604b570 f7ff460d 4620ff81 ....p..F.F.... F
03-03 02:02:39.054: I/DEBUG(4008): 402d0170 f7ff4629 bd70ff93 4604b570 460e6800 )F....p.p..F.h.F
03-03 02:02:39.054: I/DEBUG(4008): 402d0180 68834615 dd062b40 21fa4810 44784a10 .F.h@+...H.!.JxD
03-03 02:02:39.054: I/DEBUG(4008): 402d0190 f7c8447a 6821f80f 698a4620 47904631 zD....!h F.i1F.G
03-03 02:02:39.054: I/DEBUG(4008): 402d01a0 b1154606 68836820 6822602b b12b6a13 .F.. h.h+`"h.j+.
03-03 02:02:39.054: I/DEBUG(4008): code around lr:
03-03 02:02:39.054: I/DEBUG(4008): 402d01bc 68e06821 21006c4a ea0af7c4 bd704630 !h.hJl.!....0Fp.
03-03 02:02:39.054: I/DEBUG(4008): 402d01cc 00031492 000314b5 4604b570 ffcef7ff ........p..F....
03-03 02:02:39.054: I/DEBUG(4008): 402d01dc 46204605 ff12f7ff bd704628 4604b573 .F F....(Fp.s..F
03-03 02:02:39.054: I/DEBUG(4008): 402d01ec 2102460d fb36f002 42ab6823 b123d020 .F.!..6.#h.B .#.
03-03 02:02:39.054: I/DEBUG(4008): 402d01fc b1136c5b f7c868e0 68a0fccf 05c26025 [l...h.....h%`..
03-03 02:02:39.054: I/DEBUG(4008): memory map around addr 68f52abc:
03-03 02:02:39.054: I/DEBUG(4008): 4d8c5000-4d9c4000
03-03 02:02:39.054: I/DEBUG(4008): (no map for address)
03-03 02:02:39.054: I/DEBUG(4008): b0001000-b0009000 /system/bin/linker
03-03 02:02:39.054: I/DEBUG(4008): stack:
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b88 408d1f90 /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b8c 412ef258 /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b90 00000001
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b94 408d6c58 /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b98 408d6fa8 /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3b9c 4c479dec
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3ba0 46cf260a /system/framework/core.odex
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3ba4 408735e7 /system/lib/libdvm.so
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3ba8 412ef258 /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bac 002bf070 [heap]
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bb0 412ef258 /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bb4 00000000
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bb8 412ef268 /dev/ashmem/dalvik-heap (deleted)
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bbc 00000000
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bc0 df0027ad
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bc4 00000000
03-03 02:02:39.054: I/DEBUG(4008): #00 4d9c3bc8 001ad8f8 [heap]
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bcc 002ae0b8 [heap]
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bd0 00000004
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bd4 402d01dd /system/lib/libcrypto.so
03-03 02:02:39.054: I/DEBUG(4008): #01 4d9c3bd8 001ad8f8 [heap]
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3bdc 002ae0b8 [heap]
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3be0 00000004
03-03 02:02:39.054: I/DEBUG(4008): 4d9c3be4 4024e817 /system/lib/libnativehelper.so
03-03 02:02:39.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:39.500: D/CommService(7477): Monitoring nodes...
03-03 02:02:39.500: D/dalvikvm(7477): GC_FOR_ALLOC freed 2073K, 16% free 17118K/20359K, paused 51ms
03-03 02:02:39.632: D/dalvikvm(7477): GC_CONCURRENT freed 1998K, 16% free 17162K/20359K, paused 2ms+4ms
03-03 02:02:40.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:40.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:40.562: D/dalvikvm(7477): GC_CONCURRENT freed 2045K, 16% free 17158K/20359K, paused 3ms+4ms
03-03 02:02:41.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:41.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:41.531: D/dalvikvm(7477): GC_CONCURRENT freed 2045K, 16% free 17154K/20359K, paused 3ms+12ms
03-03 02:02:42.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:42.445: D/CommService(7477): Monitoring nodes...
03-03 02:02:42.507: D/dalvikvm(7477): GC_CONCURRENT freed 2068K, 16% free 17128K/20359K, paused 3ms+4ms
03-03 02:02:42.679: D/dalvikvm(7477): GC_CONCURRENT freed 2006K, 16% free 17161K/20359K, paused 2ms+12ms
03-03 02:02:43.140: I/BootReceiver(1236): Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE)
03-03 02:02:43.210: D/dalvikvm(1236): GC_FOR_ALLOC freed 912K, 17% free 10207K/12295K, paused 62ms
03-03 02:02:43.265: D/dalvikvm(1236): GC_FOR_ALLOC freed 243K, 16% free 10374K/12295K, paused 49ms
03-03 02:02:43.265: I/dalvikvm-heap(1236): Grow heap (frag case) to 10.507MB for 196628-byte allocation
sumber
Java.Lang.Object
. Menyelesaikan kecelakaan sayaJawaban:
Pertama, dapatkan jejak tumpukan batu nisan Anda, itu akan dicetak setiap kali aplikasi Anda mogok. Sesuatu seperti ini:
Kemudian, gunakan
addr2line
utilitas (temukan di rantai alat NDK Anda) untuk menemukan fungsi yang macet. Dalam sampel ini, Anda lakukanDan Anda akan melihat dari mana Anda mendapat masalah. Tentu saja ini tidak akan membantu Anda karena itu ada di libc.
Jadi, Anda dapat menggabungkan utilitas
arm-eabi-objdump
untuk menemukan target akhir.Percayalah, ini tugas yang sulit.
Hanya untuk pembaruan. Saya pikir saya sedang melakukan pembangunan Android asli dari seluruh-sumber-pohon untuk waktu yang cukup lama, sampai hari ini saya sendiri dengan hati-hati membaca dokumen NDK. Sejak rilis NDK-r6, ia telah menyediakan utilitas yang disebut
ndk-stack
.Berikut ini adalah konten dari dokumen NDK resmi dengan bola tar NDK-r9.
Gambaran:
ndk-stack
adalah alat sederhana yang memungkinkan Anda untuk menyaring jejak tumpukan saat muncul di output 'adb logcat' dan mengganti alamat apa pun di dalam pustaka bersama dengan nilai: yang sesuai.Singkatnya, ini akan menerjemahkan sesuatu seperti:
Ke dalam keluaran yang lebih mudah dibaca:
Pemakaian:
Untuk melakukan ini, pertama Anda perlu direktori yang berisi versi simbolis dari pustaka bersama aplikasi Anda. Jika Anda menggunakan sistem pembangunan NDK (yaitu
ndk-build
), maka ini selalu berada di bawah $ PROYEK_PATH / obj / lokal /, di mana singkatan dari ABI perangkat Anda (yaituarmeabi
secara default).Anda dapat memberi makan
logcat
teks baik sebagai input langsung ke program, misalnya:Atau Anda dapat menggunakan opsi -dump untuk menentukan logcat sebagai file input, misalnya:
PENTING :
Alat mencari baris awal yang berisi mulai di
logcat
output, yaitu sesuatu yang terlihat seperti:Saat menyalin / menempelkan jejak, jangan lupakan baris ini dari jejak, atau
ndk-stack
tidak akan berfungsi dengan benar.MELAKUKAN:
Versi mendatang
ndk-stack
akan mencoba meluncurkanadb logcat
dan memilih jalur pustaka secara otomatis. Untuk saat ini, Anda harus melakukan langkah-langkah ini secara manual.Sampai sekarang,
ndk-stack
tidak menangani perpustakaan yang tidak memiliki informasi debug di dalamnya. Mungkin bermanfaat untuk mencoba mendeteksi titik masuk fungsi terdekat ke alamat PC yang diberikan (misalnya seperti dalam libc.so contoh di atas).sumber
printf
. Bisakah saya melihat output dariprintf
perpustakaan asli.BAIK! Saya benar-benar minta maaf kepada mereka yang telah benar-benar mengirimkan komentar dan jawaban, tetapi saya menemukan masalahnya. Saya tidak berpikir ini akan membantu banyak orang lain yang mencoba melacak SIGSEGV pribadi mereka, tetapi milik saya (dan itu sangat sulit) sepenuhnya terkait dengan ini:
https://code.google.com/p/android/issues/detail?id=8709
Libcrypto.so dalam dump saya memberi petunjuk. Saya melakukan hash MD5 data paket ketika mencoba untuk menentukan apakah saya sudah melihat paket itu, dan melewatkannya jika sudah. Saya pikir pada satu titik ini adalah masalah threading jelek terkait dengan pelacakan hash itu, tapi ternyata itu adalah kelas java.security.MessageDigest! Ini bukan utas yang aman!
Saya menukarnya dengan UID yang saya isikan di setiap paket berdasarkan perangkat UUID dan cap waktu. Tidak ada masalah sejak itu.
Saya kira pelajaran yang bisa saya berikan kepada orang-orang yang berada dalam situasi saya adalah, bahkan jika Anda adalah aplikasi Java 100%, perhatikan perpustakaan asli dan simbol yang tercantum dalam dump crash untuk petunjuk. Googling untuk SIGSEGV + lib. Sehingga nama akan jauh lebih jauh daripada kode yang tidak berguna = 1, dll ... Selanjutnya pikirkan tentang di mana aplikasi Java Anda dapat menyentuh kode asli, bahkan jika itu bukan yang Anda lakukan. Saya membuat kesalahan dengan menganggap itu adalah masalah threading Layanan + UI di mana Kanvas menggambar sesuatu yang nol, (kasus yang paling umum saya Google di SIGSEGV) dan mengabaikan kemungkinan itu bisa sepenuhnya terkait dengan kode yang saya tulis itu terkait dengan lib .so di dump kecelakaan. Tentu saja java.security akan menggunakan komponen asli di libcrypto.so untuk kecepatan, jadi setelah saya masuk, saya mencari Google untuk Android + SIGSEGV + libcrypto. jadi dan menemukan masalah yang didokumentasikan. Semoga berhasil!
sumber
Saya mendapatkan kesalahan ini dengan menyimpan objek ke preferensi bersama sebagai string yang dikonversi gson. String gson tidak baik, jadi mengambil dan menghapus deserialisasi objek tidak benar-benar berfungsi dengan benar. Ini berarti setiap akses berikutnya ke objek mengakibatkan kesalahan ini. Menakutkan :)
sumber
android.Location
objek diSharedPreferences
dalamWakefulBroadcastReceiver
. Sebagian besar waktu itu berhasil tetapi kadang-kadang saya mengalamiSIGSEGV
kecelakaan yang menakutkan . Bisakah Anda berbagi bagaimana Anda menyelesaikannya?Saya juga mendapatkan kesalahan ini berkali-kali dan saya menyelesaikannya. Kesalahan ini akan dihadapi jika manajemen memori di sisi asli.
Aplikasi Anda sedang mengakses memori di luar ruang alamatnya. Ini kemungkinan besar merupakan akses pointer yang tidak valid. SIGSEGV = kesalahan segmentasi dalam kode asli. Karena itu tidak terjadi dalam kode Java Anda tidak akan melihat jejak tumpukan dengan detail. Namun, Anda mungkin masih melihat beberapa informasi jejak tumpukan di logcat jika Anda melihat-lihat sedikit setelah proses aplikasi crash. Itu tidak akan memberi tahu Anda nomor baris dalam file, tetapi akan memberi tahu Anda file objek dan alamat mana yang digunakan dalam rantai panggilan. Dari sana Anda sering dapat mengetahui area kode yang bermasalah. Anda juga dapat mengatur koneksi asli gdb ke proses target dan menangkapnya di debugger.
sumber
Hari ini saya menghadapi
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 18161
masalah dan saya berjuang setengah hari untuk menyelesaikan ini.Saya mencoba banyak hal membersihkan cache dan menghapus file .gradle dan semuanya.
Akhirnya saya
disable Instant Run
dan sekarang saya tidak mendapatkan masalah ini lagi. Sekarang aplikasi saya berfungsi setelah mengaktifkan jalankan instan juga. Ini mungkin masalah run instan, Coba dengan menonaktifkan dan mengaktifkan run instanDari jawaban ini :
sumber
Coba nonaktifkan akselerasi perangkat keras Android di manifes Anda.
sumber
Saya mengalami kesalahan ini ketika saya mencoba mengakses 'kanvas' di luar
onDraw()
Praktek yang sangat buruk: /
sumber
Saya mendapatkan kesalahan ini saat menggunakan bitmap seperti ini:
Apa yang memperbaiki masalah bagi saya adalah untuk mengurangi ukuran bitmap (> 1000px tinggi hingga 700px).
sumber
BitmapOptions.inSampleSize
Saya telah berhadapan dengan SIGSEGV pada Android 4.4.4 (Nexus, Samsungs) Dan ternyata kesalahan fatal dalam penguraian
null
String
menggunakanDecimalFormat
Pada Android> 21 berhasil ditangani dengan try / catch
sumber
Saya menghadapi masalah ini beberapa saat yang lalu, setelah bermigrasi dari
android.support
keandroidx
.Masalahnya adalah
renderscript
.Solusi: Saya menghapus dari
build.gradle
dua baris saya:setelah itu pembangunan proyek gagal, karena referensi yang belum terselesaikan:
jadi saya mengubahnya menjadi:
Setelah itu semua masalah hilang.
sumber
Jika Anda menggunakan pustaka vitamio dan kesalahan fatal ini terjadi.
Kemudian pastikan bahwa di targetSdkVersion proyek gradle Anda harus kurang dari 23.
Terima kasih.
sumber
Dalam kasus saya (saya menggunakan Formulir Xamarin) kesalahan ini dilempar karena kesalahan yang mengikat - misalnya:
Pada dasarnya saya menghapus properti model tampilan secara tidak sengaja. Untuk pengembang Xamarin, jika Anda memiliki masalah yang sama, periksa bindings Anda ...
sumber
Jika Anda telah menambahkan beberapa kode C asli dalam proyek Anda, jawaban ini bisa membantu.
Saya telah menambahkan beberapa kode C asli dalam proyek android.
Sekarang saya mencoba mengakses kode yang mengembalikan string asli kepada saya, sebelum memproses string yang telah saya tetapkan nilai defaultnya sebagai nullptr. Sekarang setelah mengambil nilainya dalam kode java mengalami masalah ini.
Karena kode C asli kami keluar dari direktori java, maka tidak ada petunjuk tentang baris kode yang menyebabkan masalah. Jadi saya akan menyarankan Anda untuk memeriksa file .cpp Anda dan mencoba mencari petunjuk di sana.
Semoga Anda bisa segera menyingkirkan masalah ini. :)
sumber
Dalam kasus saya, masalah ini disebabkan oleh Android Profiler. Di Android Studio, klik "Android Profiler" dan "akhiri sesi".
Ironisnya, itu juga menyebabkan masalah kinerja ekstrem dalam aplikasi.
sumber
Tambahkan dua baris ini ke build.gradle Anda di bagian android:
sumber
Periksa kode JNI / asli Anda. Salah satu referensi saya adalah nol, tetapi berselang, jadi tidak terlalu jelas.
sumber
periksa fungsi asli Anda, apakah itu kembali dengan benar atau tidak, Jika tidak dikembalikan, tambahkan pernyataan pengembalian.
sumber
Bagi saya masalah itu disebabkan oleh pemeran yang buruk antara dua kegiatan. Saya baru-baru ini memindahkan metode ini dari Activity1 ke yang lain 2. Melakukannya, refactor meninggalkan pemeran eksplisit ini seperti sebelumnya. Jadi, bukannya melakukan
Seharusnya saya lakukan
Catatan: Tetapi kesalahan ini tidak terjadi pada android 8.0 Saya belum yakin mengapa.
*** Semoga ini bisa membantu.
sumber
Saya mengalami kesalahan segmentasi ini karena masalah Memori . Struct saya memiliki banyak variabel dan array, memiliki ukuran array 1024 ini.
PS: Ini solusi dan bukan solusi. Perlu untuk menemukan ukuran struct dan alokasi memori dinamis adalah pilihan yang lebih baik.
sumber
Saya mendapat kesalahan ini ketika saya menggunakan
onDraw()
fungsi dalam ViewTreeObserver .sumber
Saya memiliki masalah ini dengan paket yang ditambahkan ke aplikasi saya (FancyShowCaseView) dan menyebabkan masalah ini pada pra-lolipop. paket itu ditulis dalam kotlin dan kode utama saya ditulis dalam java. jadi sekarang saya sedang memeriksa versi di pre-lolipop dan jangan biarkan kelasnya dieksekusi. sementara memecahkan masalah. lihat ini jika Anda memiliki masalah yang sama seperti saya
sumber
2 dari 12 ponsel mengembalikan kesalahan, menemukan masalah ada di onDrawFrame (), beberapa objek nol, saya tidak tahu mengapa, saya hanya mengatur
if(gears==null) return;
.sumber
Saya memiliki masalah ketika saya membuat PDF menggunakan API PDF Android dan saya tidak sengaja menggunakan canvas.save () dan canvas.restore () setelah saya menutup halaman pdf.
sumber