Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Xác định sự cố để kiểm thử việc triển khai
Thêm mã vào ứng dụng mà bạn có thể dùng để buộc xảy ra sự cố trong quá trình kiểm thử.
Bạn có thể dùng mã sau trong MainActivity của ứng dụng để thêm một nút vào ứng dụng. Khi nhấn nút này, ứng dụng sẽ gặp sự cố. Nút này có nhãn "Test Crash" (Kiểm thử sự cố).
Kotlin
valcrashButton=Button(this)crashButton.text="Test Crash"crashButton.setOnClickListener{throwRuntimeException("Test Crash")// Force a crash}addContentView(crashButton,ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT))
Java
ButtoncrashButton=newButton(this);crashButton.setText("Test Crash");crashButton.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewview){thrownewRuntimeException("Test Crash");// Force a crash}});addContentView(crashButton,newViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT));
Tạo bản dựng và chạy ứng dụng của bạn.
Buộc sự cố kiểm thử để gửi báo cáo sự cố đầu tiên của ứng dụng:
Mở ứng dụng trên thiết bị kiểm thử hoặc trình mô phỏng.
Trong ứng dụng của bạn, hãy nhấn vào nút "Test Crash" (Kiểm thử sự cố) mà bạn đã thêm bằng mã ở trên.
Sau khi ứng dụng gặp sự cố, hãy khởi động lại ứng dụng để ứng dụng có thể gửi báo cáo sự cố đến Firebase.
Nếu bạn đã làm mới bảng điều khiển và vẫn không thấy sự cố thử nghiệm sau 5 phút, hãy thử bật tính năng ghi nhật ký gỡ lỗi (phần tiếp theo).
Bật tính năng ghi nhật ký gỡ lỗi cho Crashlytics
Nếu không thấy sự cố trong quá trình kiểm thử trên trang tổng quan Crashlytics, bạn có thể sử dụng tính năng ghi nhật ký gỡ lỗi cho Crashlytics để giúp theo dõi vấn đề.
Bật và xem nhật ký gỡ lỗi cho Crashlytics:
Trước khi chạy ứng dụng, hãy đặt cờ adb shell sau thành DEBUG:
Xem nhật ký trong nhật ký thiết bị bằng cách chạy lệnh sau:
adb logcat -s FirebaseCrashlytics
Xác định sự cố thử nghiệm. Phần đầu tiên trên trang này mô tả cách thực hiện việc này.
Tìm thông báo hoặc mã 204 sau đây trong đầu ra logcat. Một trong hai thông báo này sẽ xác minh rằng ứng dụng của bạn đang gửi sự cố đến Firebase.
Crashlytics report upload complete
Nếu bạn không thấy nhật ký này hoặc sự cố trong quá trình kiểm thử trên trang tổng quan Crashlytics của bảng điều khiển Firebase sau 5 phút, hãy liên hệ với Nhóm hỗ trợ Firebase kèm theo bản sao đầu ra nhật ký để chúng tôi có thể giúp bạn khắc phục sự cố thêm.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-29 UTC."],[],[],null,["\u003cbr /\u003e\n\niOS+ Android Flutter Unity \n\n\u003cbr /\u003e\n\nForce a crash to test your implementation **Note:** Before forcing a crash, make sure that your app is configured to [automatically upload dSYM files](/docs/crashlytics/get-started?platform=ios#set-up-dsym-uploading).\n\n1. Add code to your app that you can use to force a test crash.\n\n You can use the following code to add a button to your app that, when\n pressed, causes a crash. The button is labeled \"Test Crash\".\n\n \u003cbr /\u003e\n\n SwiftUI \n\n ```swift\n Button(\"Crash\") {\n fatalError(\"Crash was triggered\")\n }\n ```\n\n UIKit \n\n Swift \n\n ```python\n import UIKit\n\n class ViewController: UIViewController {\n override func viewDidLoad() {\n super.viewDidLoad()\n\n // Do any additional setup after loading the view, typically from a nib.\n\n let button = UIButton(type: .roundedRect)\n button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)\n button.setTitle(\"Test Crash\", for: [])\n button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)\n view.addSubview(button)\n }\n\n @IBAction func crashButtonTapped(_ sender: AnyObject) {\n let numbers = [0]\n let _ = numbers[1]\n }\n }\n ```\n\n Objective-C \n\n ```objective-c\n #import \"ViewController.h\"\n\n @implementation ViewController\n ‐ (void)viewDidLoad {\n [super viewDidLoad];\n\n // Do any additional setup after loading the view, typically from a nib.\n\n UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];\n button.frame = CGRectMake(20, 50, 100, 30);\n [button setTitle:@\"Test Crash\" forState:UIControlStateNormal];\n [button addTarget:self action:@selector(crashButtonTapped:)\n forControlEvents:UIControlEventTouchUpInside];\n [self.view addSubview:button];\n }\n\n ‐ (IBAction)crashButtonTapped:(id)sender {\n @[][1];\n }\n\n @end\n ```\n2. Build and run your app in Xcode with the Xcode debugger disconnected.\n\n | **The Xcode debugger prevents crash reports\n | from being sent to Crashlytics.** Complete the following steps to disconnect your test device or simulator from the Xcode debugger ***before*** forcing a crash.\n 1. Click play_arrow**Build and then\n run the current scheme** to build your app on a test device or\n simulator.\n\n 2. Wait until your app is running, then click\n stop**Stop running the scheme or\n action** to close the initial instance of your app. This initial\n instance included the debugger that interferes with Crashlytics.\n\n3. Force the test crash in order to send your app's first crash report:\n\n 1. Open your app from the home screen of your test device or simulator.\n\n 2. In your app, press the \"Test Crash\" button that you added using the code\n above.\n\n 3. After your app crashes, run it again from Xcode so that your app can\n send the crash report to Firebase.\n\n4. Go to the [Crashlytics dashboard](https://console.firebase.google.com/project/_/crashlytics) of the\n Firebase console to see your test crash.\n\nIf you've refreshed the console and you're still not seeing the test crash\nafter five minutes, try enabling debug logging (next section).\n\nEnable debug logging for Crashlytics\n\nIf you don't see your test crash in the Crashlytics dashboard, you can\nuse debug logging for Crashlytics to help track down the problem.\n\n1. Enable debug logging:\n\n 1. In Xcode, select **Product \\\u003e Scheme \\\u003e Edit scheme**.\n\n 2. Select **Run** from the left menu, then select the **Arguments** tab.\n\n 3. In the *Arguments Passed on Launch* section, add `-FIRDebugEnabled`.\n\n2. Force a test crash. The first section on this page describes how to do this.\n\n3. Within your logs, search for a log message from Crashlytics that\n contains the following string, which verifies that your app is sending\n crashes to Firebase.\n\n ```\n Completed report submission\n ```\n | After confirming that your app is sending crashes, you can optionally disable debug logging by removing the `-FIRDebugEnabled` from the arguments passed on launch.\n\nIf you don't see this log or your test crash in the Crashlytics dashboard\nof the Firebase console after five minutes, reach out to\n[Firebase Support](/support/troubleshooter/crashlytics/missing) with a copy of\nyour log output so that we can help you troubleshoot further.\n\nNext steps\n\n- [Customize your crash report setup](/docs/crashlytics/customize-crash-reports) by adding opt-in reporting, logs, keys, and tracking of non-fatal errors."]]