Búsqueda de sitios web

angular - No se pueden resolver todos los parámetros para MyApp


Lo siento si esto parece un duplicado de las otras preguntas ya que no ayudaron a resolver mi problema. ¿Alguien puede ayudarme con esto? He intentado eliminar los parámetros uno por uno, pero aún así no funciona.

Can't resolve all parameters for MyApp: (?, ?, ?, ?, ?, ?).

app.component.ts

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { Subscription } from 'rxjs';

import { GlobalService } from '../services/global-service';

import { TabsPage } from '../pages/tabs/tabs';

import { File } from '@ionic-native/file';
import { Insomnia } from '@ionic-native/insomnia';

@Component({
  templateUrl: 'app.html'
})
export class MyApp{

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private global : GlobalService,
              private file: File, private insomnia: Insomnia){}
}

app.module.ts

import { MyApp } from './app.component';
import { Platform } from 'ionic-angular';
import { GlobalService } from '../services/global-service';
import { UserService } from '../services/user-service';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { File } from '@ionic-native/file';
import { FileTransfer } from '@ionic-native/file-transfer';
import { Insomnia } from '@ionic-native/insomnia';
import { Network } from '@ionic-native/network';
import { MusicControls } from '@ionic-native/music-controls';


@NgModule({
  declarations: [
    MyApp,
    ...
  ],
  imports: [
    ...
  ],
  bootstrap: [...],
  entryComponents: [
    MyApp
  ],
  providers: [
    Platform,
    StatusBar,
    SplashScreen,
    Insomnia,
    File,
    FileTransfer,
    Network,
    MusicControls,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    GlobalService,
    UserService,
    { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig }
  ]
})
export class AppModule {}

servicios/servicio-global.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Subject } from 'rxjs/Subject';
import { File } from '@ionic-native/file';
import { Platform } from 'ionic-angular';
import * as SoundFont from 'soundfont-player';
import * as Firebase from 'firebase';
import 'firebase/firestore';

import 'rxjs/Rx';

@Injectable()
export class GlobalService {..}

No puedo encontrar la causa raíz de mi error en absoluto. Estoy usando Ionic 3.9.2, Angular Core 5.2.9, Node 6.10.2. ¿Es posible que haya algo mal con mis node_modules o con alguna de mis configuraciones?

Respuesta #1

No estás proporcionando Platform como un proveedor.

import { MyApp } from './app.component';
import { GlobalService } from '../services/global-service';
import { UserService } from '../services/user-service';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { File } from '@ionic-native/file';
import { FileTransfer } from '@ionic-native/file-transfer';
import { Insomnia } from '@ionic-native/insomnia';
import { Network } from '@ionic-native/network';
import { MusicControls } from '@ionic-native/music-controls';


@NgModule({
  declarations: [
    MyApp,
    ...
  ],
  imports: [
    ...
  ],
  bootstrap: [...],
  entryComponents: [
    MyApp
  ],
  providers: [
    Platform,
    StatusBar,
    SplashScreen,
    Insomnia,
    File,
    FileTransfer,
    Network,
    MusicControls,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    GlobalService,
    UserService,
    { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig }
  ]
})
export class AppModule {}

En pocas palabras, No se pueden resolver todos los parámetros para MyApp: (?, ?, ?, ?, ?, ?). significa que no se están cumpliendo todos los parámetros que el constructor de tu aplicación espera.

EDITAR

Quizás te falta el selector app-root en tu componente App.

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { Subscription } from 'rxjs';

import { GlobalService } from '../services/global-service';

import { TabsPage } from '../pages/tabs/tabs';

import { File } from '@ionic-native/file';
import { Insomnia } from '@ionic-native/insomnia';

@Component({
  selector: 'app-root',
  templateUrl: 'app.html'
})
export class MyApp{

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private global : GlobalService,
              private file: File, private insomnia: Insomnia){}
}

Respuesta #2

¿editaste tu index.html?

Si lo hiciste, deshaz los cambios o asegúrate de que el orden de los archivos de compilación sea polyfills.js, vendor.js y main.js porque intenté reproducir este problema.