web-dev-qa-db-ja.com

AppCompatActivity.onCreateは、同じライブラリグループ内からのみ呼び出すことができます

Appcompat 25.1.0にアップグレードした後、有線エラーが発生し始めました。

私のコードでは:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

私はリントエラーを受け取ります:

AppCompatActivity.onCreate can only be called from within the same library group (groupId=com.Android.support)

そのような動作を防ぐ方法は?

86
pixel

フェリペがすでに comment で指摘しているように、これはツールのプレリリース版では bug です。

次のコードをプロジェクトモジュールのbuild.gradleファイルに追加することで、Googleが修正プログラムをリリースするまで、今のところ回避することができます。

Android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

これは、そのタイプのすべてのエラーを抑制するため、プロジェクトの真のエラーを隠す可能性があることに注意する価値があります。したがって、より良いオプションは、Android St​​udioのバージョンとプロジェクトで使用されるツールをダウングレードすることです。

81
Martin

以前の回答が強調したように、それはバグです。プロジェクト全体で特定のlint警告を無効にするのではなく、その方法のみを無効にすることをお勧めします。次のようにメソッドに注釈を付けます。

@SuppressLint("RestrictedApi")
@Override
public void setupDialog(Dialog dialog, int style) {
    super.setupDialog(dialog, style);
    //your code here
}
116
DimitrisCBR

LintOptionsで警告を無効にすることは適切なオプションに見えませんが、ステートメントレベルで検査を抑制することをお勧めします。

警告を与えるコード行の上にこのコメントを追加します。

//noinspection RestrictedApi
63
Killer