AppCompatActivity.onCreate는 동일한 라이브러리 그룹 내에서만 호출 할 수 있습니다.


107

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)

그러한 행동을 방지하는 방법은 무엇입니까?


6
교체 invalidateOptionsMenu()와 함께 supportInvalidateOptionsMenu(). 이 작업을 수행해야합니다
ᴛʜᴇᴘᴀᴛᴇʟ

1
나는 내 코드에서 그러한 방법을 사용하지 않는다
pixel

답변:


94

Felipe가 이미 그의 의견 에서 지적했듯이 이것은 도구의 시험판 버전의 버그 입니다.

Google에서 수정 사항을 출시 할 때까지 프로젝트 모듈의 build.gradle 파일에 다음을 추가하여 문제를 해결할 수 있습니다.

android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

이는 해당 유형의 모든 오류를 억제하므로 프로젝트의 실제 오류를 숨길 수 있으므로 더 나은 옵션은 Android Studio 및 프로젝트에 사용 된 도구의 버전을 다운 그레이드하는 것입니다.


5
아래 @Cbr의 대답을 제안하고 싶습니다. 방법 수준에서만 억제하며 .NET과 달리 Android Studio 3에서 작동합니다 //noinspection RestrictedApi.
Sakiboy

137

이전 답변이 강조 되었 듯이 버그입니다. 프로젝트 전체에서 특정 린트 경고를 비활성화하지 않는 것이 좋지만 해당 방법에 대해서만 사용하는 것이 좋습니다. 다음과 같이 메소드에 주석을 추가하십시오.

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

4
이 대답은 전역 적으로 비활성화되지 않고 IDE의 오류 / 경고를 해결하고 컴파일 타임에 메서드 상단에 명시 적으로 나열되어 있기 때문에 이해하기 쉽습니다 ( //noinspection RestrictedApi주석으로 숨겨져있는 것과 달리 IDE에서 경고 만 묵음 처리하고 컴파일 타임에는 표시하지 않음) 최신 버전의 Android Studio 및 Gradle에서 작동합니다.
Sakiboy

1
이 대답을 사용해야합니다. 프로젝트에서 전역 비활성화를 수행하는 것은 좋은 생각이 아닙니다.
크리스토퍼 스 미트

1
당신은 또한 당신이 대신 전체 방법에 대한 억제에 필요한 전용 라인이 주석을 사용할 수 있습니다
벤 케인

64

lintOptions에서 경고를 비활성화하는 것은 좋은 옵션이 아닌 것 같습니다. 문 수준에서 검사를 억제하는 것이 좋습니다.

경고를 제공하는 코드 줄 위에 다음 주석을 추가합니다.

//noinspection RestrictedApi

2
나는 이걸로 간다. 전 세계적으로 lintOptions를 비활성화하지 않는 것이 더 나은 해결책 일 수 있습니다. Thx
Yoraco Gonzales

4
Android Studio 3에서 작동하지 않습니다. 몇 가지 변경 사항이 있습니까?
vovahost

13
@vovahost Android Studio 3에서 문제없이 @SuppressLint("RestrictedApi")대신 사용 합니다//noinspection RestrictedApi
vector

1
예, 하나도 저에게 효과적이지만 // noinspection은 하나의 진술에서만 작동합니다.
vovahost

1
@Sakiboy Cbr의 솔루션은 다른 오류를 숨길 수 있기 때문에 사용하고 싶지 않은 전체 방법에 적용됩니다.
vovahost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.