OnCreate 只能从同一个库组中调用

升级到应用程序 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)

如何防止这种行为?

58389 次浏览

As Felipe already pointed out in his 评论 this is a 臭虫 in the pre-release version of the tools.

在 Google 发布补丁之前,你可以通过在你的项目模块 build.gradle 文件中添加以下内容来解决这个问题:

android {
lintOptions {
disable 'RestrictedApi'
}
}

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

Disabling the warning in lintOptions doesn't look a good option it's better to suppress inspection at the statement level.

将此注释添加到给出警告的代码行之上:

//noinspection RestrictedApi

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

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