AndroidのWebViewのバージョンをCrashlyticsに投げる
Android 5.0(Lollipop)以降のWebView
Android 4.4 (KitKat)までは、WebViewがOSに組み込まれていたので、
Chromiumのバグがあった場合、その修正や機能追加などは、
OS自体のアップデートをする必要がありました。
Android 5.0(Lollipop)以降では、ここにもあるとおり、
WebViewがOSから切り離され、Google Play ストア経由で
「Android System WebView」としてアップデートできるようになりました。
クラッシュレポート
今までWebViewを使っているアプリでは、
デバイス ✕ OSのバージョン
上記のパターンでバグの再現条件の調査を行うことができましたが、今後は
デバイス ✕ OSのバージョン ✕ Chromiumのバージョン
上記のようにChromiumのバージョンも考慮しなければならない可能性があります。
Androidアプリのクラッシュレポートを取得するサービスとして有名なCrashlyticsでは、
標準でデバイスやOSのバージョンなどを取得することはできますが、
WebViewで用いられているChromiumのバージョンを取得することはできません。
Crashlyticsはカスタムキーを設定してログを残すことができるので、これを使って
クラッシュ時にWebViewのUserAgentを合わせてCrashlyticsに投げるようにします。
実装
WebViewのUserAgentをパースするために、
gradleを使って導入できたので、Wootheeを使います。
準備はbuild.gradleのdependenciesに
compile 'is.tagomor.woothee:woothee-java:1.0.0'
を追加してbuildするだけです。
たとえば下記のようなクラスを用意して、
package com.example.log;
import com.crashlytics.android.Crashlytics;
import java.util.Map;
import is.tagomor.woothee.Classifier;
public class CrashlyticsUtils {
public CrashlyticsUtils() {
throw new AssertionError();
}
private static final String NAME = "name";
private static final String OS_VERSION = "os_version";
private static final String CATEGORY = "category";
private static final String OS = "os";
private static final String VENDOR = "vendor";
private static final String VERSION = "version";
public static void setUserAgent(final String userAgentString) {
Map<String, String> userAgent = Classifier.parse(userAgentString);
Crashlytics.setString(NAME, userAgent.get(NAME));
Crashlytics.setString(OS_VERSION, userAgent.get(OS_VERSION));
Crashlytics.setString(CATEGORY, userAgent.get(CATEGORY));
Crashlytics.setString(OS, userAgent.get(OS));
Crashlytics.setString(VENDOR, userAgent.get(VENDOR));
Crashlytics.setString(VERSION, userAgent.get(VERSION));
}
}
それをWebViewをもつクラスから実行すれば、クラッシュした際に
WebViewのUserAgentを合わせて取得することができます。
String userAgentString = webView.getSettings().getUserAgentString();
CrashlyticsUtils.setUserAgent(userAgentString);
Author And Source
この問題について(AndroidのWebViewのバージョンをCrashlyticsに投げる), 我々は、より多くの情報をここで見つけました https://qiita.com/ktsujichan/items/5a2d395a713ad82cc063著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .