久しぶりにAndroidアプリをビルドしたら以下の警告が・・
Task :app:compileDebugJavaWithJavac
注意:xxxは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
デフォルトだと詳細までは表示してくれないようで、build.gradleを修正します。
allprojects {
repositories {
google()
jcenter()
}
// 以下を追加
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation"
}
}
}
xxx.java:26: 警告: [deprecation] WebViewClientのshouldOverrideUrlLoading(WebView,String)は非推奨になりました
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
おぉ、詳細なメソッドまで教えてくれるようになりました。
こんな時はリファレンスを!
boolean shouldOverrideUrlLoading(WebView view, String url)
This method was deprecated in API level 24. Use shouldOverrideUrlLoading(WebView, WebResourceRequest) instead.
API level 24(Android 7.0)で非推奨になったようです。
引数がどうやら変わったようです。
URIを取得する際にparseしていたのをダイレクトに取得する感じですね。
Uri.parse(url)
↓
request.getUrl()