Android Crashlytics ndk; значения NdkOut и NdkLibsOut в build.gradle

Я включил Crashlytics, Fabric в мое приложение, связанные с sdk сбои были успешно отправлены.

Для части ndk я следил за инструкциями из блога; Ожидание завершено: запуск Crashlytics для Android NDK, но аварийные сообщения ndk не сообщаются. Я сомневаюсь, потому что другие части достаточно ясны, я не предоставляю правильный путь для androidNdkOut и androidNdkLibsOut, как показано на рисунке:

enter image description here

У меня есть сомнения и вопрос в моем build.gradle, вот он...

crashlytics {  

    enableNdk true
    androidNdkOut //what would be the obj here?
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries  

}

пожалуйста, дайте мне знать, если я должен опубликовать любую другую часть кода

Ответ 1

EDIT/UPDATE 7 июля 2017 г.

Мэтт из команды Fabric здесь с обновлением этого ответа - мы только что выпустили плагин Fabric Gradle версии 1.23.0, который включает в себя поддержку автоматического обнаружения соответствующих путей исходной библиотеки, когда вы используете DSL externalNativeBuild с плагином Android для Gradle версии 2.2.0+, поэтому вам больше не нужно устанавливать свойства androidNdkOut и androidNdkLibsOut. Это будет работать как с CMake, так и с ndk-build. Подробнее читайте здесь: https://docs.fabric.io/android/crashlytics/ndk.html#specifying-the-path-to-debug-and-release-binaries


Я мог бы решить проблему после получения справки Crashlytics/Fabric Поддержка, спасибо им. Этот ответ.

Во-первых, для

crashlytics {  

    enableNdk true
    androidNdkOut //what would be the obj here?
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries  

}  

для моего приложения build.gradle, оно должно быть:

crashlytics {
    enableNdk true
    androidNdkOut 'src/main/jniLibs'
    androidNdkLibsOut 'src/main/jniLibs'
}  

androidNdkOut - это место, где находятся ваши двоичные файлы. Это значение по умолчанию на 'src/main/obj', но вы можете установить в crashlytics {}, если это разные в вашем проекте.

ссылка, которая содержит полезную информацию о том же: база знаний crashlytics; Отсутствие номеров строк при сбоях на родном языке

Небольшая, но очень полезная часть выполняла команды типа uploadReleaseSymbols с опцией --stacktrace. Подумал, что стоит упомянуть, что (загрузка символов выпуска) также была проблемой на моей стороне, чтобы не получать отчеты о сбоях.

Ответ 3

У нас была аналогичная проблема: мне пришлось добавить набор CrashlyticsNdk в Fabric.with().

Fabric fabric = new Fabric.Builder(context)
    .kits(new Twitter(authConfig), new Crashlytics(), new CrashlyticsNdk())
    .debuggable(true)
    .build();
Fabric.with(fabric);

вы можете проверить androidNdkOut, androidNdkLibsOut таким образом.

$ ./gradlew -d clean assemble{Flavor} | grep ndk-build

и вы найдете NDK_OUT и NDK_LIBS_OUT.