错误:离子科尔多瓦运行 android --prod --release

Posted

技术标签:

【中文标题】错误:离子科尔多瓦运行 android --prod --release【英文标题】:Error: ionic cordova run android --prod --release 【发布时间】:2018-03-01 05:58:33 【问题描述】:

当我尝试使用以下命令进行构建时。如何解决这个问题。我怀疑这个问题是因为离子已更新而发生的。

即使我尝试从指令中删除 AccountPage,下一页 ConfirmationPage 也会出现问题。

ionic cordova run android --prod --release

错误

app.modules.ts

import  BrowserModule  from '@angular/platform-browser';
import  ErrorHandler, NgModule  from '@angular/core';
import  IonicApp, IonicErrorHandler, IonicModule  from 'ionic-angular';
import  HttpModule  from '@angular/http';


import  MyApp  from './app.component';
import  HomePage  from '../pages/home/home';
import  TransactionPage  from '../pages/transaction/transaction';
import  LoginPage  from '../pages/login/login';
import  SendPage  from '../pages/send/send';
import  DetailPage  from '../pages/detail/detail';
import  ConfirmationPage  from '../pages/confirmation/confirmation';
import  JoinPage  from '../pages/join/join';
import  AccountPage  from '../pages/account/account';
import  OtpPage  from '../pages/otp/otp';

import  StatusBar  from '@ionic-native/status-bar';
import  SplashScreen  from '@ionic-native/splash-screen';
import  TransactionDataProvider  from '../providers/transaction-data/transaction-data';
import  SenderProvider  from '../providers/sender/sender';
import  AuthServiceProvider  from '../providers/auth-service/auth-service';

@NgModule(
  declarations: [
    MyApp,
    HomePage,
    TransactionPage,
    LoginPage,
    SendPage,
    DetailPage,
    ConfirmationPage,
    JoinPage,
    OtpPage,
    AccountPage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp),
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage,
    TransactionPage,
    LoginPage,
    SendPage,
    DetailPage,
    ConfirmationPage,
    JoinPage,
    OtpPage,
    AccountPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    provide: ErrorHandler, useClass: IonicErrorHandler,
    TransactionDataProvider,
    SenderProvider,
    AuthServiceProvider
  ]
)
export class AppModule 

【问题讨论】:

【参考方案1】:

使用--prod.时需要从所有页面中删除<page-name>.module.ts文件

从生成的文件夹中删除模块文件并从<page-name>.ts文件中删除@IonicPage()并删除IonicPage import

【讨论】:

【参考方案2】:

在执行 Paresh 所说的操作之前,您需要先了解您使用的是什么架构。您是否延迟加载页面?

最新版本的 ionic-cli 使用特定页面的模块和页面.ts 文件中的@IonicPage() 装饰器生成准备好延迟加载的页面。由于您在app.module 上声明了每个页面,因此您很有可能没有延迟加载,但是当您推送页面或类似的东西并且您没有导入要使用的页面时,您只需将页面名称作为字符串传递,那么您就是延迟加载。

因此,如果您使用延迟加载,则需要从 app.module.ts 声明和 entryComponents 中删除所有页面的导入和声明。

如果您不是在每个页面文件夹中延迟加载,则需要删除 <page>.module.ts 并从页面 .ts 文件中删除 @IonicPage()

【讨论】:

我没有使用延迟加载。在我的开发过程中,离子更新了@ionic/cli-utils:1.10.2 ionic (Ionic CLI):3.10.3。我确实更新了它 但是删除自动生成的页面模块对你有用吗?为不使用延迟加载的项目生成页面时,请使用标志 --no-module,例如 ionic g page yourPageName --no-module,它会阻止 CLI 生成模块。 谢谢你们。当我删除 modules.ts 和 imports 时它可以工作。

以上是关于错误:离子科尔多瓦运行 android --prod --release的主要内容,如果未能解决你的问题,请参考以下文章

离子科尔多瓦构建错误无法解析配置':classpath'的所有工件无法下载com.android.tools.build:builder:3.3.0

使用此命令在移动设备中运行离子应用程序时出错(离子科尔多瓦运行安卓)

离子科尔多瓦文件传输插件超时错误代码3

无法在终端中构建应用程序,只能使用 Android Studio。 (离子,科尔多瓦)

离子构建android,错误:产生EACCES

尽管成功运行了离子资源命令,离子应用程序图标和闪屏仍显示科尔多瓦默认图标