Я пытаюсь внедрить Crashlytics для своего проекта, в котором используется NDK/JNI. Однако часть JNI находится в проекте, загруженном извне, например, в settings.gradle
:
include ':app', ':core'
project (':core').projectDir = new File(rootDir, '../core')
Я читал, что Crashlytics какое-то время должен автоматически находить символы без необходимости указывать androidNdkOut
и androidNdkLibsOut
. Это не сработало для моего сценария, когда я позвонил ./gradlew crashlyticsUploadSymbols{flavor}Debug
, он пожаловался на неправильный androidNdkOut.
Поэтому я добавил эти пути явно в build.gradle
приложения:
crashlytics {
enableNdk true
androidNdkOut '../../core/build/intermediates/cmake/debug/obj'
androidNdkLibsOut '../../core/build/intermediates/cmake/release/obj'
manifestPath 'src/main/AndroidManifest.xml'
}
Crashlytics находит их прямо сейчас, и crashlyticsUploadSymbols{flavor}Debug
возвращает успех. Но это не работает должным образом. Некоторые ошибки вообще не отображаются в консоли Crashlytics, остальные не деобфусцируются. Также Crashlytics показывает что-то вроде этого в логарифме:
W/CrashlyticsCore: No minidump data found in directory /data/data/com.example.app/files/.Fabric/com.crashlytics.sdk.android.crashlytics-ndk/native/1513601249792
Что мне нужно сделать, чтобы моя конфигурация правильно регистрировала исключения NDK в консоли Crashlytics?