monacaでlandscape時のスプラッシュスクリーンの表示方法(android)

投稿者: Anonymous

いつもお世話になっております。
monacaを利用して、cordovaハイブリッドアプリを開発しています。
スプラッシュスクリーンが表示されない問題が発生しています。
(指定した秒数の間は画面が暗転し、その後トップページが表示されます)

こちらで試した内容は以下の2点です。
いずれもスプラッシュスクリーンは表示されませんでした。

1.アプリを新規作成
 アプリの設定 > [Android] > 画面の向き:[Landscape]として設定
 デバッグビルド

2.アプリを新規作成
アプリの設定 > [Android] > 画面の向き:[Landscape]として設定
横画面用の9.png画像を用意し、config.xmlを

<splash src="/res/android/screen/splash-land-mdpi.9.png" density="land-mdpi"/>

と変更し、デバッグビルド

2を試した際、ビルドログには

cp: no such file or directory: /private/tmp/monaca/*************/project/res/android/screen/splash-land-mdpi.9.png

と表示されてしまいます。


スプラッシュファイルの設定画面には画面の向きごとの設定もないので、一括でいけるものかと考えていたのですが、どうやら違うようです…
解決策をご存知の方、ご教授頂けますでしょうか?

プロジェクト構成と、config.xmlは以下のになります。

○プロジェクト構成
[HelloWorld]
 ∟[.monaca]
 ∟[platforms]
 ∟[res]
  ∟[android]
   ∟[icon]
   ∟[screen]
     ∟ splash-land-hdpi.png
     ∟ splash-land-ldpi.png
     ∟ splash-land-mdpi.png
     ∟ splash-land-xhdpi.png
     ∟ splash-land-xxhdpi.png
     ∟ splash-land-xxxhdpi.png
     ∟ splash-port-hdpi.png
     ∟ splash-port-ldpi.png
     ∟ splash-port-mdpi.png
     ∟ splash-port-xhdpi.png
     ∟ splash-port-xxhdpi.png
     ∟ splash-port-xxxhdpi.png
  ∟[ios]
  ∟[winrt]
∟ .gitignore
∟ config.xml
∟ LICENSE
∟[www]
∟[components]
∟[css]
∟ index.html

○ config.xml

_x000D_

_x000D_

<?xml version="1.0" encoding="UTF-8"?>_x000D_
<widget xmlns="http://www.w3.org/ns/widgets" id="com.example.helloworld" version="1.0.0">_x000D_
  <name>Hello World App</name>_x000D_
  <description>Made with Monaca (http://monaca.mobi)</description>_x000D_
  <author/>_x000D_
  <content src="index.html"/>_x000D_
  <allow-navigation href="*"/>_x000D_
  <allow-intent href="itms:*"/>_x000D_
  <allow-intent href="itms-apps:*"/>_x000D_
  <preference name="loglevel" value="DEBUG"/>_x000D_
  <preference name="AndroidLaunchMode" value="singleTop"/>_x000D_
  <preference name="ErrorUrl" value=""/>_x000D_
  <preference name="SplashScreen" value="screen"/>_x000D_
  <preference name="AllowInlineMediaPlayback" value="false"/>_x000D_
  <preference name="AutoHideSplashScreen" value="true"/>_x000D_
  <preference name="BackupWebStorage" value="cloud"/>_x000D_
  <preference name="EnableViewportScale" value="false"/>_x000D_
  <preference name="FadeSplashScreen" value="true"/>_x000D_
  <preference name="FadeSplashScreenDuration" value="250"/>_x000D_
  <preference name="KeyboardDisplayRequiresUserAction" value="true"/>_x000D_
  <preference name="MediaPlaybackRequiresUserAction" value="false"/>_x000D_
  <preference name="ShowSplashScreenSpinner" value="false"/>_x000D_
  <preference name="SuppressesIncrementalRendering" value="false"/>_x000D_
  <preference name="TopActivityIndicator" value="gray"/>_x000D_
  <preference name="GapBetweenPages" value="0"/>_x000D_
  <preference name="PageLength" value="0"/>_x000D_
  <preference name="PaginationBreakingMode" value="page"/>_x000D_
  <preference name="PaginationMode" value="unpaginated"/>_x000D_
  <feature name="LocalStorage">_x000D_
    <param name="ios-package" value="CDVLocalStorage"/>_x000D_
  </feature>_x000D_
  <preference name="UIWebViewDecelerationSpeed" value="normal"/>_x000D_
  <preference name="ios-XCBuildConfiguration-TARGETED_DEVICE_FAMILY" value="1,2"/>_x000D_
  <platform name="ios">_x000D_
    <icon src="/res/ios/icon/icon.png" width="57" height="57"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="114" height="114"/>_x000D_
    <icon src="/res/ios/icon/icon-72.png" width="72" height="72"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="144" height="144"/>_x000D_
    <icon src="/res/ios/icon/icon-60.png" width="60" height="60"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="120" height="120"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="180" height="180"/>_x000D_
    <icon src="/res/ios/icon/icon-76.png" width="76" height="76"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="152" height="152"/>_x000D_
    <icon src="/res/ios/icon/icon-40.png" width="40" height="40"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="80" height="80"/>_x000D_
    <icon src="/res/ios/icon/icon-50.png" width="50" height="50"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="100" height="100"/>_x000D_
    <icon src="/res/ios/icon/icon-small.png" width="29" height="29"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="58" height="58"/>_x000D_
    <icon src="/res/ios/icon/[email protected]" width="87" height="87"/>_x000D_
    <icon src="/res/ios/icon/[email protected]~ipad.png" width="167" height="167"/>_x000D_
    <splash src="/res/ios/screen/Default~iphone.png" width="320" height="480"/>_x000D_
    <splash src="/res/ios/screen/[email protected]~iphone.png" width="640" height="960"/>_x000D_
    <splash src="/res/ios/screen/[email protected]~iphone.png" width="640" height="1136"/>_x000D_
    <splash src="/res/ios/screen/Default-667h.png" width="750" height="1334"/>_x000D_
    <splash src="/res/ios/screen/Default-736h.png" width="1242" height="2208"/>_x000D_
    <splash src="/res/ios/screen/Default-Landscape-736h.png" width="2208" height="1242"/>_x000D_
    <splash src="/res/ios/screen/Default-Portrait~ipad.png" width="768" height="1024"/>_x000D_
    <splash src="/res/ios/screen/Default-Landscape~ipad.png" width="1024" height="768"/>_x000D_
    <splash src="/res/ios/screen/[email protected]~ipad.png" width="1536" height="2048"/>_x000D_
    <splash src="/res/ios/screen/[email protected]~ipad.png" width="2048" height="1536"/>_x000D_
    <config-file platform="ios" parent="CFBundleLocalizations" target="*-Info.plist">_x000D_
      <array>_x000D_
        <string>en</string>_x000D_
      </array>_x000D_
    </config-file>_x000D_
  </platform>_x000D_
  <platform name="android">_x000D_
    <icon src="/res/android/icon/ldpi.png" density="ldpi"/>_x000D_
    <icon src="/res/android/icon/mdpi.png" density="mdpi"/>_x000D_
    <icon src="/res/android/icon/hdpi.png" density="hdpi"/>_x000D_
    <icon src="/res/android/icon/xhdpi.png" density="xhdpi"/>_x000D_
    <icon src="/res/android/icon/xxhdpi.png" density="xxhdpi"/>_x000D_
    <icon src="/res/android/icon/xxxhdpi.png" density="xxxhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-ldpi.png" density="port-ldpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-mdpi.png" density="port-mdpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-hdpi.png" density="port-hdpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-xhdpi.png" density="port-xhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-xxhdpi.png" density="port-xxhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-port-xxxhdpi.png" density="port-xxxhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-ldpi.png" density="land-ldpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-mdpi.png" density="land-mdpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-hdpi.png" density="land-hdpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-xhdpi.png" density="land-xhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-xxhdpi.png" density="land-xxhdpi"/>_x000D_
    <splash src="/res/android/screen/splash-land-xxxhdpi.png" density="land-xxxhdpi"/>_x000D_
  </platform>_x000D_
  <platform name="windows">_x000D_
    <icon src="/res/winrt/icon/package_logo_winrt.png" target="StoreLogo"/>_x000D_
    <icon src="/res/winrt/icon/app_logo_winrt.png" target="Square150x150Logo"/>_x000D_
    <icon src="/res/winrt/icon/app_small_logo_winrt.png" target="Square30x30Logo"/>_x000D_
    <icon src="/res/winrt/icon/app_tile_wide_logo_winrt.png" target="Wide315x150Logo"/>_x000D_
    <splash src="/res/winrt/screen/app_splash_screen_winrt.png" width="620" height="300"/>_x000D_
  </platform>_x000D_
  <platform name="chrome">_x000D_
    <icon src="/platforms/chrome/icon.png" width="128" height="128"/>_x000D_
  </platform>_x000D_
  <preference name="WindowsStorePublisherName" value="My Name"/>_x000D_
  <preference name="WindowsStoreIdentityName" value="ca30d585-5e70-ddeb-e273-f4ffe0bd1059"/>_x000D_
  <access origin="*"/>_x000D_
  <preference name="KeepRunning" value="true"/>_x000D_
  <preference name="monaca:AndroidIsPackageNameSeparate" value="false"/>_x000D_
  <preference name="DisallowOverscroll" value="true"/>_x000D_
  <preference name="Orientation" value="landscape"/>_x000D_
  <preference name="SplashScreenDelay" value="1000"/>_x000D_
  <preference name="Fullscreen" value="false"/>_x000D_
</widget>

_x000D_

_x000D_

_x000D_

解決

Monacaのサポートに問い合わせないとわからないかもしれません。

通常のCordovaのスプラッシュスクリーンであれば、

<preference name="SplashScreen" value="screen"/>
<splash src="[src-path]" density="[density]">

のように指定した場合、ビルド時に以下のように画像がコピーされます。

`[src-path]` => <ビルド環境>/platform/android/res/drawable-[density]/<SplashScreen名>.png

発生しているエラーから推測すると、[src-path]に指定したパスが
/private/tmp/monaca/*************/project/res/android/screen/splash-land-mdpi.9.png
となっています。

Monacaはクラウド上にビルド環境があるため、おそらく通常のCordovaのビルド時の画像コピーの前に、クラウドのビルド環境の/private/tmp/monaca/<id>/project/にリソースをコピーするという処理が入るのだと思います。
このリソースコピーでデフォルトのportraitは正常にコピーされるが、landscapeとして追加したリソースがコピーされず、cp: no such file or directory:というエラーに繋がっているのだと思います。


​​.monaca-res/res‌​/android/scre‌​en/sp‌​lash-la‌​nd-mdpi.pngの指定を試してもらったのはリソースがクラウド上のそのフォルダ/private/tmp/monaca/<id>/project/.monaca-resにコピーされるのではないか、という推測からです。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *