AppCompatActivity.onCreate kann nur innerhalb derselben Bibliotheksgruppe aufgerufen werden

Lesezeit: 3 Minuten

AppCompatActivityonCreate kann nur innerhalb derselben Bibliotheksgruppe aufgerufen werden
Pixel

Nach dem Upgrade auf appcompat 25.1.0 Ich habe angefangen, seltsame Fehler zu bekommen.

In meinem Code:

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

Ich bekomme einen Flusenfehler:

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

Wie kann man ein solches Verhalten verhindern?

  • ersetzen invalidateOptionsMenu() mit supportInvalidateOptionsMenu(). es sollte den Job machen

    – ᴛʜᴇᴘᴀᴛᴇʟ

    16. Dezember ’16 um 18:00 Uhr

  • Ich verwende solche Methoden nicht in meinem Code

    – Pixel

    16. Dezember 16 um 18:09 Uhr

  • Klingt nach einem Bug: code.google.com/p/android/issues/detail?id=230387

    – Felipe Lima

    16. Dezember 16 um 18:28 Uhr

Wie in früheren Antworten hervorgehoben wurde, handelt es sich um einen Fehler. Ich empfehle, die spezifische Fusselwarnung nicht projektweit zu deaktivieren, sondern nur für diese Methode. Beschriften Sie Ihre Methode wie folgt:

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

  • Diese Antwort ist am besten, da sie nicht global deaktiviert wird, den Fehler/die Warnung in der IDE behebt und zur Kompilierzeit leicht verständlich ist, da sie explizit oben in der Methode aufgeführt ist (im Gegensatz zu //noinspection RestrictedApi das als Kommentar versteckt ist und nur die Warnung in der IDE, aber nicht zur Kompilierzeit stummschaltet), und es funktioniert mit der neuesten Version von Android Studio und Gradle.

    – Sakiboy

    16. November 17 um 9:53 Uhr


  • Diese Antwort sollte verwendet werden. Keine gute Idee, das Projekt global zu deaktivieren.

    – Christoph Smit

    26. Juni 18 um 6:35 Uhr

  • Sie können diese Anmerkung auch nur in der Zeile verwenden, in der Sie sie benötigen, anstatt sie für die gesamte Methode zu unterdrücken

    – Ben Kane

    7. August 18 um 15:34 Uhr

  • Danke, das hat bei mir funktioniert. In meinem speziellen Fall wurde der Fehler mit applicationContext behoben: @SuppressLint(“RestrictedApi”) fun toastString(string: String){ var context = getApplicationContext() Toast.makeText(context, string, Toast.LENGTH_LONG).show() }

    – Liker777

    16. Dezember 21 um 5:55 Uhr

AppCompatActivityonCreate kann nur innerhalb derselben Bibliotheksgruppe aufgerufen werden
Martin

Wie Felipe bereits in seinem Kommentar betonte, ist dies a Insekt in der Vorabversion der Tools.

Sie können dies vorerst umgehen, bis Google einen Fix veröffentlicht, indem Sie Folgendes in die build.gradle-Datei Ihres Projektmoduls einfügen:

android {
  lintOptions {
    disable 'RestrictedApi'
  }
}

Es ist erwähnenswert, dass dies echte Fehler in Ihrem Projekt verbergen kann, da es alle Fehler dieses Typs unterdrückt. Daher wäre die bessere Option, die Version von Android Studio und die im Projekt verwendeten Tools herunterzustufen.

  • Ich würde die Antwort von @Cbr unten vorschlagen, sie unterdrückt nur auf Methodenebene und funktioniert im Gegensatz zu Android Studio 3 //noinspection RestrictedApi.

    – Sakiboy

    16. November 17 um 9:58 Uhr


AppCompatActivityonCreate kann nur innerhalb derselben Bibliotheksgruppe aufgerufen werden
Shubham Agarwal

Das Deaktivieren der Warnung in lintOptions scheint keine gute Option zu sein, es ist besser, die Inspektion auf Anweisungsebene zu unterdrücken.

Fügen Sie diesen Kommentar über der Codezeile hinzu, die die Warnung ausgibt:

//noinspection RestrictedApi

  • Ich gehe mit diesem. Ich könnte die bessere Lösung sein, die lintOptions nicht global zu deaktivieren. Vielen Dank

    – Yoraco Gonzales

    28. Mai 17 um 14:08 Uhr

  • Funktioniert nicht in Android Studio 3. Gab es Änderungen?

    – vovahost

    12. Oktober 17 um 17:01 Uhr

  • @vovahost verwende ich @SuppressLint("RestrictedApi") anstatt //noinspection RestrictedApi ohne Probleme in Android Studio 3

    – Vektor

    19. Oktober 17 um 14:42 Uhr


  • Ja sicher, das funktioniert auch für mich, aber die //noinspection funktioniert nur für eine Aussage, was besser ist.

    – vovahost

    19. Oktober 17 um 14:45 Uhr

  • @Sakiboy Die Lösung von Cbr gilt für die gesamte Methode, die ich nicht verwenden wollte, da sie andere Fehler verbergen kann.

    – vovahost

    16. November 17 um 8:50 Uhr


.

661820cookie-checkAppCompatActivity.onCreate kann nur innerhalb derselben Bibliotheksgruppe aufgerufen werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy