Your system information:
Cordova CLI: 6.5.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
OS: macOS Sierra
Node Version: v6.9.5
Xcode version: Xcode 8.2.1 Build version 8C1002
私はionic platform add Android
を使用してAndroidプロジェクトを作成しようとしていますが、resources/Android/icon/drawable-hdpi-icon.png
が存在しないと常に文句を言います。実際には存在しません。リソースは存在し、ionic resources
で作成できます。
ただしプラットフォームなしでionic resources
を実行しようとすると、最初にプラットフォームを追加するように指示されます。これにより、基本的に次のようなことが行われます。
ionic platform add Android
ionic resources
ionic platform rm Android
ionic platform add Android
それからそれはきちんとはたらきます。プラットフォームを追加する前に、リソースが適切に構築または参照されるようにするためにできることはありますか?
これは実際には私の構成に関係していました。構成でプラットフォームを指定しない場合、platform add
が作成します。これには、存在しないリソースへのパスが自動的に含まれます。
Config.xmlを更新して、プラットフォームを含めます。空であっても:
<platform name="Android"/>
<platform name="ios"/>
次に、platform add
は、構成内のプラットフォームを更新せず、存在しない可能性のあるリソースを探します。それでもionic resources
しかし、事後にそれらを生成します。
私の場合、config.xmlで、タグのパスに円記号が含まれていたため、次のように変更しました。
<icon src="resources\Android\icon\drawable-xhdpi-icon.png" />
に:
<icon src="resources/Android/icon/drawable-xhdpi-icon.png" />
私の場合、config.xml
パスの問題。
これをする前に:
<icon density="hdpi" src="res/Android/ic-hdpi.png" />
しかし、私のフォルダ構造にはiconという追加のフォルダがあるので、すべての.png
パスファイル:
<icon density="hdpi" src="res/icon/Android/ic-hdpi.png" />
そしてそれは私のために働いた
私にとって、この問題はconfig.xmlの次の行に起因していました。
'<preference name="orientation" value="portrait" />'
実際、「ionic cordova platform add Android/ios」を使用してプラットフォームを追加しようとすると、それぞれのプラットフォームが追加され、それぞれのリソース(「icon.png」および「splash.png」)が生成されます。ポートレートの向きでは、その向きに関連するリソースのみを追加します(つまり、ionic向きがポートレートに設定されている場合、cordovaリソースはランドスケープ画像を追加しません)。パスが存在しません:resources/Android/icon/drawable-hdpi-icon.png」エラー。
したがって、config.xmlでポートレート/ランドスケープモードが選択されているかどうかを確認してください。
Please remove any preference with portrait/landscape from your config.xml file before adding platform.
スプラッシュスクリーンの名前とアプリアイコンを確認します。ファイルの名前を間違えました。私の場合、エラーは無効なファイル名が原因でした。 「splash.png」と「icon.png」であるはずのアセット、つまりAppName_splash.pngとicon-512.pngをコピーして貼り付けました。
ionicアプリリソースが適切に追加されていない場合、次のコマンドを使用して別のアプリをインストールすることができます。
ionic start appname blank
次に、Androidアイコンフォルダーをコピーして、現在のアプリフォルダーに貼り付けます。これは正常に機能します。