web-dev-qa-db-ja.com

Ionicコルドバリソース--splashおよび--iconエラー

リソースジェネレーターでこのエラーが発生します。
Error: end() has already been called, so it's too late to start piping

このエラーに悩まされています。リソースを生成しようとすると表示されます:

PS F:\Desenvolvimento\Ionic\Divas> ionic cordova resources ios -f
√ Collecting resource configuration and source images - done!
√ Filtering out image resources that do not need regeneration - done!
√ Uploading source images to prepare for transformations: 2 / 2 complete - done!
- Generating platform resources: 8 / 32 complete
C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:859
      throw Error("end() has already been called, so it's too late to start piping");
      ^

Error: end() has already been called, so it's too late to start piping
    at Response.response.pipe (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:859:13)
    at Request.req.type.send.on.res (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\lib\integrations\cordova\resources.js:166:25)
    at Request.emit (events.js:182:13)
    at Request._emitResponse (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:862:8)
    at ClientRequest.req.once.res (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic\node_modules\superagent\lib\node\index.js:412:10)
    at Object.onceWrapper (events.js:273:13)
    at ClientRequest.emit (events.js:187:15)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
    at TLSSocket.socketOnData (_http_client.js:442:20)

私のシステム:

Ionic:

   ionic (Ionic CLI)  : 4.7.1 (C:\Users\Gustavo\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : not installed
   Cordova Platforms     : Android 6.3.0
   Cordova Plugins       : cordova-plugin-ionic-webview 1.1.1, (and 8 other plugins)

System:

   NodeJS : v10.15.0 (C:\Program Files\nodejs\node.exe)
   npm    : 6.5.0
   OS     : Windows 10
17
Gustavo

画像のサイズが正しくないようです。より大きなサイズの新しい画像を作成しましたが、うまくいきました。それについてのメッセージがなかったのは奇妙です。

28
Gustavo

まったく同じエラーが発生しました。私のicon.png(私が作成したもの)が1024x916であることに気づきました。私はそれを正確に1024x1024にサイズ変更しましたが、今は機能します!!!

8
Luis Cabrera

スプラッシュスクリーンは2732×2732pxである必要があります(ここを参照してください: https://ionicframework.com/docs/cli/cordova/resources/

8
Thorsten

ソースアイコンは、理想的には1024x1024px以上で、resources/icon.pngに配置する必要があります。スプラッシュ画面のソース画像は、理想的には2732×2732px以上で、resources/splash.pngに配置する必要があります。

4

サイズを変更するだけ

  1. 1024x1024のアイコン
  2. 2732x2732としてスプラッシュ

次に実行します:-

  1. イオンコルドバリソース。
  2. ios ionic CordovaリソースAndroid。

ドキュメントのとおり アイコンのソース画像は、理想的には1024x1024px以上で、resources/icon.pngに配置する必要があります。スプラッシュ画面のソース画像は、理想的には2732×2732px以上で、resources/splash.pngに配置する必要があります。

ionicのバージョンに問題があり、リソース生成の正確なエラーが記録されていません。これはまだ既知のバグではないと思います。

現時点では、npm i -g ionic@3を実行してから、コマンドを再度実行できます。これにより、エラーメッセージが表示されます。完了したら、npm i -g ionicを再度実行して、Ionic 4.に更新します。

3
Neil Chowdhury

Linuxでも同じエラーが発生しました。

私の新しいアイコンはアルファチャネル(私の間違い)を使用しており、このエラーが発生しました。このスレッドを見たとき、私はこのツールが非常に賢明である可能性があることを理解しました。私のアイコン(新旧)は512 * 512でした。私のspashは2300 * 2400でした。 =>すべての画像を正しいサイズにしても効果がありませんでした。 gimpを使用して私のイメージを「平坦化」することが解決策でした。

私の結論:画像でアルファチャネルを使用しない

1
Arnaud

リソースからsplash.pngとicon.pngファイルを削除してから、最初に要件に従ってスプラッシュとアイコンの画像を変換します ここにリンクの説明を入力 次に、変換された画像をリソースディレクトリにコピーして置き換えてから、イオンコルドバリソースのみプラットフォームを追加する必要はありませんionicは自動的にリソースを作成します。

0
Aniruddh Thakor