web-dev-qa-db-ja.com

Angularエラー:StaticInjectorError(プラットフォーム:コア)[e-> t]:

--prodでAPKをビルドしているときに、以下のエラーが発生します

    ERROR Error: StaticInjectorError[e -> t]: 
  StaticInjectorError(Platform: core)[e -> t]: 
    NullInjectorError: No provider for t!
    at e.get (core.js.pre-build-optimizer.js:8894)
    at core.js.pre-build-optimizer.js:9139
    at e (core.js.pre-build-optimizer.js:9083)
    at e.get (core.js.pre-build-optimizer.js:8980)
    at core.js.pre-build-optimizer.js:9139
    at e (core.js.pre-build-optimizer.js:9083)
    at e.get (core.js.pre-build-optimizer.js:8980)
    at Ua (core.js.pre-build-optimizer.js:21119)
    at e.get (core.js.pre-build-optimizer.js:21808)
    at Ts (core.js.pre-build-optimizer.js:22179)

しかし、Ionic Cordova build Androidでも動作しますが、ng serveでも動作しますが、ng serve --prod"でも上記と同じエラーが発生します。

どうすればこれを解決できますか?

3
sahil tuteja

AppModuleのプロバイダーまたはcomponent.ts内にリストされていないサービスを使用しようとしています。サービスをプロバイダーリストに追加して、機能させます。

そのサービスをグローバル(アプリコンテキストに関連)にする場合は、app.modulesで。

@NgModule({
    declarations: [...],
    imports: [...],
    bootstrap: [...],
    entryComponents: [...],
    providers: [
        MyService
    ]
})

または、そのサービスを目的のコンポーネントのコンテキストにする場合は、component.tsで。

@Component({
    selector: '...',
    templateUrl: '...',
    providers: [MyService]
})

両方のファイルに追加しないでください。また、app.modulesまたはcomponentのいずれかにサービスを挿入するときに、そのサービスをインポートすることを忘れないでください。

import { MyService } from '../services/myservice';

この質問もあなたを助けるかもしれません: エラー:tのプロバイダーがありません

3
TheBosti

これは、モジュールの構築に使用されたサービスを追加しなかったために発生します

例:

1。コンポーネント

@Component({
  selector: 'app-sample',
  templateUrl: './sample.component.html',
  styleUrls: ['./sample.component.scss']
})
export class SampleComponent implements OnInit {

constructor(private localServiceName: YourService) {
}

  ngOnInit() {
  }

}

2。モジュール

@NgModule({
    declarations: [SampleComponent]
})

への変更

@NgModule({
    declarations: [SampleComponent]
    providers: [ YourService ]
})
0
Agus Suhardi