Проблема в настройке Sentry.io. Ничего не отправлено в Sentry Panel - PullRequest
0 голосов
/ 13 ноября 2018

Я собираюсь использовать проект Sentry for My Android, над которым я работаю. Моя компания использует Sentry, версия 9.0.0

.

Я следовал Sentry.io Руководство по установке .

Эти разрешения были добавлены в манифесте:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Это мой app / build.gradle файл:

dependencies {
    ...
    implementation 'io.sentry:sentry-android:1.7.10'
    implementation 'org.slf4j:slf4j-nop:1.7.25'
}

apply plugin: 'io.sentry.android.gradle'

sentry {
    autoProguardConfig true
    autoUpload true
}

Это мой проект верхнего уровня build.gradle :

dependencies {
    ...
    classpath 'io.sentry:sentry-android-gradle-plugin:1.7.10'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Это MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Context ctx = this.getApplicationContext();
    String sentryDsn = "https://MyPublicKey:MySecretKey...";
    Sentry.init(sentryDsn, new AndroidSentryClientFactory(ctx));

    setContentView(R.layout.activity_main);

    Sentry.capture("This Is My First Log!");
    ...
}

но в Sentry Panel ничего не отправлено. В чем проблема?

Есть идеи?

1 Ответ

0 голосов
/ 19 ноября 2018

ЭТО НЕ ОТВЕТ, ЧТО Я НУЖЕН, НО ЭТО НЕ ПЛОХО, ЧТОБЫ СКАЗАТЬ

Наконец-то я нашел решение отправить Журналы на панель Sentry, используя этот класс: Sentry.class

однако для работы потребовались некоторые изменения, но теперь он работает как шарм.Единственное, что меня беспокоит, это то, что когда я открываю событие на панели Sentry, это предупреждение будет отображаться внизу страницы:

Это событие было сообщено со старой версией Java SDK.

Для инициализации и захвата журналов с использованием этого Sentry.class скопируйте его коды в новый класс, который вы создали в своем проекте, и найдите следующий фрагмент кода:

header.append("Sentry ")
        .append(String.format("sentry_version=%s,", sentryVersion))
        .append(String.format("sentry_client=sentry-android/%s,", BuildConfig.SENTRY_ANDROID_VERSION))
        .append(String.format("sentry_key=%s,", publicKey))
        .append(String.format("sentry_secret=%s", secretKey));

и замените BuildConfig.SENTRY_ANDROID_VERSION строкой, содержащей версию сторожевой библиотеки.например, я добавил эту зависимость в моем app / build.gradle :

implementation 'io.sentry:sentry-android:1.7.10'

, теперь я должен заменить BuildConfig.SENTRY_ANDROID_VERSION на "1.7.10"

, а также заменитьСтрока в этой строке:

conn.setRequestProperty("User-Agent", "sentry-android/" + BuildConfig.SENTRY_ANDROID_VERSION);

и удалите эту строку в комментариях:

* @see com.joshdholtz.sentry.Sentry#addHttpBreadcrumb(String, String, int)

Теперь вам просто нужно добавить инициализировать Sentry, добавив эту строку кода в MainActivity:

SentryLog.init(this, yourDSN);

SentryLog - это имя моего нового класса, содержащего коды Sentry.class.

Обратите внимание: вы должны добавить устаревший DSN, который длиннее.

теперь вы можетепроверьте это, добавив следующую строку:

SentryLog.captureMessage("This Message Captured by Alireza Noorali.");

Но я буду рад получить лучшие решения.

...