Skip to content
πŸ”₯ A crash reporting library for Android APPs. Support catching native crash and Java exception. Support Android 4.0 - 9.0 (API level 14 - 28). Support armeabi, armeabi-v7a, arm64-v8a, x86 and x86_64.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Move to the community. Mar 18, 2019
src [improve] To improve the way you use LR register in fallback mode. Apr 22, 2019
.gitignore Move to the community. Mar 18, 2019
CONTRIBUTING.md [doc] Update the README and CONTRIBUTING. Mar 27, 2019
LICENSE Move to the community. Mar 18, 2019
LICENSE-docs Move to the community. Mar 18, 2019
README.md
README.zh-CN.md [improve] To improve the way you use LR register in fallback mode. Apr 22, 2019

README.md

xCrash

xCrash is a crash reporting library for Android APPs. It support catching native crash and Java exception.

xCrash can generate a tombstone file (similar format as Android system's tombstone file) in the directory you specified when the APP process crashes. And, no root permission or any system permissions are required.

xCrash is used in a variety of Android APPs (including iQIYI Video) from iQIYI for many years.

README δΈ­ζ–‡η‰ˆ

Features

  • Support Android 4.0 - 9.0 (API level 14 - 28).
  • Support armeabi, armeabi-v7a, arm64-v8a, x86 and x86_64.
  • Catching native crash and Java exception.
  • Setting which thread's info should be dumped via regular expressions.
  • Dumping detailed memory usage statistics.
  • Do not require root permission or any system permissions.

Catching Native Crash

catching native crash

Usage

1. Adding dependency.

dependencies {
    implementation 'com.iqiyi.xcrash:xcrash-android-lib:2.0.10'
}

2. Specifying ABI(s) you need.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
    }
}

3. Adding ProGuard rules.

-keep class xcrash.NativeCrashHandler {
    native <methods>;
    void callback(...);
}

4. Initialize xCrash in Application#attachBaseContext().

public class MyCustomApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        
        xcrash.XCrash.init(this);
    }
}

Tombstone files will be written to Context#getFilesDir() + "/tombstones" directory by default. (usually in: /data/data/<APP_PACKAGE_NAME>/files/tombstones)

There is a more practical and complex sample APP in the src/java/xcrash/xcrash_sample folder.

Build

1. Download Android NDK r16b, set PATH environment.

2. Build and install the native libraries.

cd ./src/native/
./build.sh
./install.sh

3. Build AAR library.

cd ./src/java/xcrash/
./gradlew :xcrash_lib:build

Contributing

See xCrash Contributing Guide.

License

xCrash is MIT licensed, as found in the LICENSE file.

xCrash documentation is Creative Commons licensed, as found in the LICENSE-docs file.

You can’t perform that action at this time.