我最近将我的Ionic 3应用程序更改为Lazy Loading模式,但是“我在构建应用程序时遇到了问题。当我使用 ionic-serve 运行应用程序时,它运行良好,但是当我构建应用程序时,会在隐藏启动画面时显示此消息:
没有为e发现组件工厂。你有没有把它添加到@ NgModule.entryComponents?
以下任何脚本都显示此消息:
"ionic:build:test-local6": "ionic-app-scripts build android",
"ionic:build:test-local5": "ionic-app-scripts build android --aot",
"ionic:build:test-local4": "ionic cordova build android --aot --optimizejs",
"ionic:build:test-local2": "ionic-app-scripts android --prod --release",
"ionic:build:test-local3": "ionic cordova build android --prod",
"ionic:build:test-local": "ionic cordova build android --prod --release",
这是我的app-scripts版本: “devDependencies”:{ “@ ionic / app-scripts”:“^ 3.1.6”, }
这是我的档案:
components.module.ts
import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
//Components
import * as Components from './components';
@NgModule({
entryComponents: [
Components.Component1,
Components.Component2,
Components.Component3
],
exports: [
Components.Component1,
Components.Component2,
Components.Component3
],
declarations: [
Components.Component1,
Components.Component2,
Components.Component3
],
imports: [
IonicModule
],
})
export class ComponentsModule {}
checklist.module.ts
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import * as Pages from './../pages';
import { PipesModule } from '../../pipes/pipes.module';
import { ComponentsModule } from '../../components/components.module';
@NgModule({
exports: [
Pages.ChecklistPage,
],
declarations: [
Pages.ChecklistPage,
],
imports: [
ComponentsModule,
PipesModule,
IonicPageModule.forChild(Pages.ChecklistPage),
],
})
export class ChecklistPageModule {}
我一直在网上搜索我的问题的解决方案,但没有一个对我有用。
更新
我最近发现签署apk会导致此错误发生。一个非签名的apk总是有效。
这是我的签名脚本:
#Create signed apk
/c/Program\ Files/Java/jdk1.8.0_161/bin/jarsigner.exe -verbose -sigalg SHA1withRSA -digestalg SHA1 -storepass $password -keystore $keystorePath $releaseUnsignedPath $alias
#Rename and verify signed apk
$zipalignPath -f -v 4 $releaseUnsignedPath $releaseSignedApk
答案 0 :(得分:0)
我发现了问题。它与模块配置无关。我错过了在应用程序上引用一个页面链接。
//this.navCtrl.setRoot(MenuPage);
this.navCtrl.setRoot('MenuPage');
感谢您的帮助:D