私のAndroidアプリは、一部のデバイスでStringIndexOutOfBound例外を取得し、一部のデバイスでは完全に動作します
ここに私のコードがあります
try {
Document document = Jsoup.connect(PostLink).header("Accept-Encoding", "gzip, deflate").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0").get();
String FullPage = document.toString();
int startIndex = FullPage.indexOf("//");
int endIndex = FullPage.indexOf("?", startIndex);
String DownloadableLink = FullPage.substring(startIndex, endIndex);
Log.i("URLFETCH", DownloadableLink);
if (DownloadableLink.length() > 0 && DownloadableLink.startsWith("//m") && DownloadableLink.endsWith(".mp4")) {
return new basic(Name, PostLink, document.title(), "https:" + DownloadableLink);
} else {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
reference.child("Errored").push().setValue(new basic(Name, PostLink, document.title(), "https:" + DownloadableLink));
}
} catch (IOException e) {
e.printStackTrace();
}
これは、「doinbackground」メソッドの「AsyncTask」で行っていることなので、DB ref を作成して、アプリがクラッシュする理由や、どのタイプの URL が原因であるかについての情報を取得します。