AppCompatActivity.onCreate 只能从同一图书馆组内调用

AppCompatActivity.onCreate can only be called from within the same library group

升级到 appcompat 后 25.1.0 我开始遇到奇怪的错误。

在我的代码中:

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

我收到 lint 错误:

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

如何防止此类行为?

正如 Felipe 在工具的预发布版本中的 this is a bug 中所指出的那样。

您现在可以解决它,直到 Google 发布修复程序,方法是将以下内容添加到项目模块的 build.gradle 文件中:

android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

值得注意的是,这可能会隐藏项目中的真实错误,因为它抑制了该类型的所有错误,因此更好的选择是降级 Android Studio 的版本和项目中使用的工具.

禁用 lintOptions 中的警告看起来不是一个好选择,最好在语句级别禁止检查。

在发出警告的代码行上方添加此注释:

//noinspection RestrictedApi

正如之前的回复所强调的那样,这是一个错误。我建议不要在整个项目范围内禁用特定的 lint 警告,但仅针对该方法。如下注释您的方法:

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