Android targetSdkVersionを28から30への変更したときのメモ

Posted by kwmt27 on Sat, Jun 12, 2021

Activity

エラー内容

e: /Users/kwmt/work/personal/QRCodeReader/core/presentation/src/main/java/net/kwmt27/presentation/MainActivity.kt: (61, 5): 'onRestoreInstanceState' overrides nothing

原因

onRestoreInstanceStateメソッドの引数のsavedInstanceStateに@NonNullアノテーションがついたため、 protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState)

対策

-    override fun onRestoreInstanceState(savedInstanceState: Bundle?) {
+    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
         super.onRestoreInstanceState(savedInstanceState)

該当箇所

ConnectivityManager

エラー内容

e: /Users/kwmt/work/personal/QRCodeReader/core/presentation/src/main/java/net/kwmt27/presentation/WifiLifeCycle.kt: (66, 17): 'onAvailable' overrides nothing
e: /Users/kwmt/work/personal/QRCodeReader/core/presentation/src/main/java/net/kwmt27/presentation/WifiLifeCycle.kt: (71, 17): 'onLost' overrides nothing

原因

これもNonNullアノテーションがついたため

対策

該当箇所

ClipboardManager

エラー内容

e: /Users/kwmt/work/personal/QRCodeReader/core/presentation/src/main/java/net/kwmt27/presentation/common/Navigator.kt: (41, 9): Val cannot be reassigned
val clipboardManager =
             fragment.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager ?: return
clipboardManager.primaryClip = ClipData.newPlainText("", text)

原因

そもそもprimaryClipフィールドがなかったのか? ドキュメントみてもソース見てもない・・・ https://developer.android.com/reference/android/content/ClipboardManager

対策

         val clipboardManager =
             fragment.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager ?: return
-        clipboardManager.primaryClip = ClipData.newPlainText("", text)
+        clipboardManager.setPrimaryClip(ClipData.newPlainText("", text))
         fragment.toast(fragment.getString(R.string.copied))
     }


comments powered by Disqus