2017-11-27 5 views

Antwort

2

Die Lösung besteht darin, das Schlüsselwort class anstelle von object zu verwenden. Ein object declaration in Kotlin ist ein Singleton, was bedeutet, dass es nur eine einzige Instanz hat, und es hat einen privaten Konstruktor, um die Erstellung von anderen Instanzen zu verhindern.

Im Fall einer Klasse Application auf Android jedoch wird das Framework selbst die Instanz erstellen, wenn Ihre Anwendung gestartet wird, und dies erfordert einen zugänglichen privaten Konstruktor.

0

Verwenden Sie die folgenden, wo in der Art der Klasse von Objekt geändert wird

class MyApplication : Application() { 
override fun onCreate() { 
     super.onCreate() 
     initOkHttp() 
    } 
} 
0

Sie sollten class statt Object verwenden, damit es funktioniert.

class MyApplication : Application() { 
     override fun onCreate() { 
      super.onCreate() 
      initOkHttp() 
     } 
    } 
0

Der Grund, warum Sie diesen Fehler sind immer ist, weil der object Modifikator effektiv Ihre Klasse ein Singleton macht, daher gibt es keinen praktischen Weg für sie instanziiert werden. Ersetzen Sie es daher durch class, was einer normalen Java-Klasse entspricht.

Verwandte Themen