5

Android Studio (バージョン 4.1.1) は、onClick を使用するビューの xml レイアウト ファイルに警告を表示します (警告 ID: UsingOnClickInXml、プラットフォームの古いバージョンは Android:onClick の解決を適切にサポートしていません)。これらは、コード インスペクターを実行すると、lint 警告にも表示されます。Android Studio は、build.gradle (app) ファイルで設定した minSdkVerion (16) を使用していないようです。

    <Button
        android:id="@+id/btn_Splash_PrivacyPolicy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick" //This gets highlighted with the warning
        android:text="@string/dialog_button_privacyPolicy"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        />

これは私のbuild.gradle(アプリ)ファイルからの抜粋です:

android {
    compileSdkVersion 30
    buildToolsVersion '30.0.3'
    defaultConfig {
        ...
        minSdkVersion 16
        targetSdkVersion 30
        ...
        }
    ...
}

これは、マージされた AndroidManifest.xml に保持されているようです (マニフェストで minSdkVerion を直接設定するのではなく、build.gradle ファイルでのみ設定します)。マージされた AndroidManifest.xml からの抜粋

<manifest
  ...
  <uses-sdk
    android.minSdkVersion="16"
    android.targetSdkVersion="30" />
  ...

関連する Activity で onClick を使用する方法の例:

    public void onClick(View view){
        if (view.getId() == R.id.btn_SplashOK) {
            if (mCheckBox_SplashDontShowAgain.isChecked()) {
                sendIntentInfoBack(Constants.DONT_SHOW_AGAIN);
            } else {
                sendIntentInfoBack(Constants.DO_SHOW_AGAIN);
            }
        } else if (view.getId() == R.id.btn_Splash_PrivacyPolicy){
            Toolset.showPrivacyPolicyDialog(getSupportFragmentManager());
        }
    }

アプリは正しく機能しているように見えますが、AS / lint が設定した minSdkVersion を認識しないのではないかと心配しています。

私はもう試した:

  1. ビルド -> プロジェクトのクリーンアップ
  2. ビルド -> プロジェクトの再構築
  3. ビルド -> プロジェクトの作成
  4. ファイル->キャッシュの無効化/再起動
  5. minSdkVersion を 17 に変更、同期、16 に戻して同期
  6. Analyze->Inspect Code を数回再実行する

私は見直しました:

Android Studio が minSdkVersion を取得しない - 該当なし。正しいファイルに値を設定しました。

Android Lint は、SDK の最小バージョンが 1 であると誤って認識しています- 該当しませんか? 回答によると、AS で「Clear Lint Markers」を見つけることができませんでした。時代遅れ?(2012年からの回答)

私の質問:

  1. これは問題ですか/心配する必要がありますか?
  2. 設定した minSdkVersion を正確に使用するように AS / lint を修正する方法はありますか?
4

1 に答える 1