Exporting to Android (MV Android Client)

Discussion in 'RPG Maker MV Tutorials' started by xilefian, Sep 29, 2017.

  1. xilefian

    xilefian Veteran Veteran

    Messages:
    89
    Likes Received:
    127
    First Language:
    English
    The originating tutorial along with direct support can be found at:
    hbgames.org/forums/viewtopic.php?f=48&p=939401

    Index

    • Prerequisites
    • Creating the Android app
    • Testing (Optional)
    • Create Debug APK
    • Customisation
    • Crosswalk vs WebView

    What is the MV Android Client

    The MV Android Client is a runtime client for the Android™ operating system intended to play games created with the RPG Maker MV game development tool-kit.


    The tutorial uses the MV Android Client to compile an RPG Maker MV project for Android (deployed as an Android APK).

    Prerequisites

    MV Android Client

    Obtain the MV Android Client source code from the URL:
    github.com/AltimitSystems/mv-android-client/zipball/master
    Or by cloning the GitHub repository with git:
    github.com/AltimitSystems/mv-android-client.git

    This is a zip folder of the latest version of the MV Android Client.

    Extract this zip folder to a memorable location (such as your computer Desktop folder).

    Development Environment

    The official IDE for Android application development is Android Studio by Google.

    Android Studio can be downloaded for macOS, Microsoft Windows and Linux at the following URL:
    developer.android.com/studio

    The Android Studio install instructions for your platform can be found at the following URL: developer.android.com/studio/install.html

    Android SDK Libraries

    When opening Android Studio for the first time, you will be presented with a welcome window describing the version of Android Studio you have installed with some quick options for creating a project.

    [​IMG]

    If this is not the first time you are opening Android Studio and you are presented with a previous project, you can reach the welcome window by closing your current project from the File menu and then selecting Close Project.

    At the lower right of the welcome window is the Configure menu. Open this menu and select SDK Manager to start the Android SDK Manager. This is where you can download the required Android SDK libraries for a project.

    You may also open the Android SDK Manager from within an opened project via the Tools menu, selecting the Android sub menu and then choosing the SDK Manager.

    Required SDK Platforms

    The Android SDK Manager has three tabs; SDK Platforms, SDK Tools and SDK Update Sites.

    To download the required SDK Platforms, make sure the SDK Platforms tab is selected. This is where you can download the development libraries for the many versions of Android.

    It is usually best to select the most recent version of Android for installation. As of the writing of this tutorial, the most recent version of Android is "Android 8.0 (Oreo)".

    Check the box to the left of the version of Android you wish to install the SDK for and click Apply to begin downloading the required SDK Platforms.

    [​IMG]

    Required SDK Tools

    Once the SDK Platform is downloaded, select the SDK Tools tab to begin downloading the tools needed for developing Android apps.

    From this list, check the boxes to the left of the following SDK Tools:

    • Android SDK Build-Tools
    • Android SDK Platform-Tools
    • Android SDK Tools
    • Support Repository

    [​IMG]

    If you wish to test your app on a real device you may need to also check the Google USB Driver if you are on Windows.

    Click Apply to begin downloading the required SDK Tools.

    Deployed RPG Maker MV Project

    To prepare your RPG Maker MV project for Android you must export it from the File menu, selecting the Deployment... option.

    [​IMG]

    In the Deployment window that appears, make sure the Android / iOS Platform is selected. You may check the Exclude unused files option, however this may break some Plugins that depend on additional files.

    [​IMG]

    Remember to select an Output Location for the deployment, you can do this by clicking the Choose... button. You will need to find this output location later so make sure it's in an easy to find, memorable place (such as your computer Desktop folder).

    Click OK to begin the deployment.

    Creating the Android app

    Open MV Android Client

    From the Android Studio welcome screen, select Open an existing Android Studio project.

    Find the folder where you extracted the MV Android Client source code downloaded at the beginning of the Prerequisites section.

    [​IMG]

    Select this folder so it is highlighted and then click OK. It may take some time for Android Studio to build the project after opening it.

    Wait for the project to settle in Android Studio. The project will automatically download additional libraries that it needs, so an internet connection is required for loading the project.

    [​IMG]

    Once everything is settled, expand the Project tab at the upper far left and expand the Build Variants tab at the lower far left.

    Expanding the app folder in the Project tab should have the manifests, java code and xml values.

    The Build Variants section can be used to switch between Crosswalk and WebView as the default web-engine.

    [​IMG]

    Crosswalk development ended in January 2017, so it is better to use WebView, however older devices may not be fully compatible with WebView features. See the end of this tutorial for a more in-depth explanation on Crosswalk vs WebView.

    Import deployed RPG Maker MV project

    Create Assets folder

    If the Assets folder is not visible within the app folder of Android Studio then it must be created. The Assets folder is used to store the deployed RPG Maker MV project.

    Right-click on the app folder to open the context menu. Open the New submenu, then open the Folder submenu lower down. From here, click the Assets Folder to begin creating the Assets folder.

    [​IMG]

    Simply click OK on the window that appears.

    [​IMG]

    Copy RPG Maker MV project files

    Find the deployed RPG Maker MV project that you created during the Prerequisites. Inside here should be a www folder.

    [​IMG]

    Select the www folder so it is highlight and copy this folder by right-clicking on it and selecting the copy option.

    Back in Android Studio, you want to now right-click on the Assets folder and paste the www folder by selecting the paste option.

    [​IMG]

    In the Copy window that appears, make sure Open copy in editor is un-checked to prevent the MV project files from opening in Android Studio and then click OK.

    [​IMG]

    Depending on the size of your MV project, it may take a while to copy it into Android Studio.

    Modify applicationId

    The Android applicationId must be unique to your project.

    Expand the Gradle Scripts and open the build.gradle (Module: app) file.

    [​IMG]

    You should see something similar to the above image. Find the line inside defaultConfig that has applicationId.

    [​IMG]

    Change the text inside the quotes to a new applicationId. Android applicationIds must contain no spaces and must be lower-case Latin characters with periods between each word.

    Generally, they are domain names in reverse with the app name at the end. An example for a project call "Adventure" made at HBGames.org would be "org.hbgames.adventure".

    If you do not have a website domain, you can use your first and last name. A project called "Owl Chronicles" by someone called "Harry Potter" would be "potter.harry.owlchronicles".

    It must be unique to your project and your studio.

    Testing (optional)

    If you have an Android phone you may connect it to your computer to test your MV project directly.

    A guide for setting up a phone for testing is available at this URL:
    developer.android.com/studio/run/device.html

    Alternatively, you may create an Android emulator instance. An emulator runs on your computer and does not require an Android phone.

    A guide for setting up an emulator instance for testing is available at this URL:
    developer.android.com/studio/run/emulator.html

    Create Debug APK

    From Android Studio, select Build and then click Build APK.

    [​IMG]

    This will compile and build your app, which may take some time. When it is complete, at the lower right of Android Studio you will see a confirmation message with a handy link to your APK.

    [​IMG]

    Clicking the link will open up the folder for you, where you can copy and share the APK.

    [​IMG]

    This is a debug APK, so it is not ready for publishing to the Google Play Store. This tutorial will not cover publishing a release APK and support will not be given for issues related to APKs built for release. For information on creating a release APK see the URL:
    developer.android.com/studio/publish

    Customisation

    Most of the customisation can be done within the values.xml file.

    [​IMG]

    App Name

    To rename your app, open the values.xml file and find the app_name entry. By default, the app is called RPG Maker MV.

    Unicode must be used for non-Latin characters (such as Chinese characters). Use a unicode converter to generate these for XML.

    App Website

    The website URL is configured in the values.xml file. Change the app_host to your website domain and app_scheme to HTTP or HTTPS. As an example, if my website is http://www.hbgames.org then my app_scheme will be "http" and my app_host will be "hbgames.org".

    After that, my website will need to be associated with the app. See the section "Associate your app with your website" at the URL:
    developer.android.com/studio/write/app-link-indexing.html

    App Icon

    Open up the res/mipmap folders to view the app icons.

    [​IMG]

    There are multiple icons here to handle the different versions of Android and the different sized icons for different devices.

    You may delete all these icons to remove the default icon, however you must replace the icons with two icons, one named "app_icon" and another named "app_icon_round".

    These can be PNG images, or you can create them with Android Studio by right-clicking on the mipmap folder, opening the New submenu and selecting Image Asset.

    A guide for the Image Asset Studio is at the URL:
    developer.android.com/studio/write/image-asset-studio.html

    Remember to have two icons named "app_icon" and "app_icon_round"! Ideally, app_icon_round would be a circular icon.

    [​IMG] [​IMG]

    Crosswalk vs WebView

    Crosswalk is an Intel project that aimed to create a portable WebView alternative for Android that worked across multiple versions of Android. crosswalk-project.org

    You may know of Crosswalk from Intel XDK, Cordova and PhoneGap. It is also featured as part of the "official" Android deployment guide for RPG Maker MV.

    Modern Android has separated the WebView component from the operating system, so now old versions of Android can receive critical security updates for WebView without needing a complete operating system update. This has made Crosswalk redundant as Crosswalk's main goal was to provide WebView updates for old versions of Android.

    So why use Crosswalk? Unfortunately, WebView updates haven't enabled some features for older devices. Namely, WebAudio and WebGL might not be available for old Android phones. Crosswalk may have these implemented for old devices, so with Crosswalk there is a possibility that compatibility can be improved.

    This is not a win-win situation, however. WebView can work on even older version of Android than Crosswalk (Going as far back as Android 3.0 Honeycomb API 11). WebView may even be faster than Crosswalk for newer devices.

    The critical difference is that Crosswalk is no-longer in development, so it will not receive security updates. If a bug appears in Crosswalk that allows people to hack devices and break phones through your app or game then you're out of luck. With WebView, an update from Google will fix the issue rapidly.

    WebView is also a core part of Android itself. Using Crosswalk can increase the size of the APK as all the Crosswalk libraries and files for all the potential versions of Android and phone devices need to be included as well.

    The recommendation from security-conscious developers such as myself is that WebView should be used and Crosswalk avoided. Crosswalk should be used at your own risk.

    If a serious security issue for Crosswalk does appear in the future, it will be removed from future versions of the MV Android Client.
     
    Last edited: Nov 16, 2017
    #1
  2. Hudell

    Hudell Dog Lord Veteran

    Messages:
    3,253
    Likes Received:
    2,725
    Location:
    Brazil
    First Language:
    Portuguese
    Primarily Uses:
    RMMV
    Amazing! Thank you for your hard work, Xilefian!
     
    #2
  3. TheFe91

    TheFe91 Villager Member

    Messages:
    5
    Likes Received:
    0
    Location:
    Cologno Monzese (MI) - Italy
    First Language:
    Italian
    Primarily Uses:
    RMMV
    WOW you actually saved my life!! You've done something of really really excellent, THANK YOU!!!!!!:hswt:
     
    #3
  4. LanceRPG

    LanceRPG A Lazy Beggar Veteran

    Messages:
    38
    Likes Received:
    10
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMMV
    That's a very good article , thank you
     
    #4
  5. xilefian

    xilefian Veteran Veteran

    Messages:
    89
    Likes Received:
    127
    First Language:
    English
    The MV Android Client has had some updates today:
    • Android Studio 3.0 support.
    • versionCode and versionName is reset to 1 and "1.0" respectively to be used for projects; use this for your project version updates.
    • Copyright transferred to "Altimit Community Contributors" (see CONTRIBUTING).
    • Added easy-access support for enabling the FPS debug monitor via SHOW_FPS in build.gradle (app).
    • Added a small amount of comments for better documentation of the build.gradle (app).
    • Fixed issue with unsupported bootstrapping not correctly applying the noaudio query.
     
    #5
    elpeleq42 likes this.
  6. Maycon Gama Ribeiro

    Maycon Gama Ribeiro Heroes Of Equilibrium Veteran

    Messages:
    128
    Likes Received:
    15
    Location:
    Brasil - Brazil
    First Language:
    Português
    Primarily Uses:
    RMMV
    I did everything right, it is not reproducing BGM and video (mp4)
     
    #6
  7. Domster

    Domster Warper Member

    Messages:
    1
    Likes Received:
    0
    First Language:
    German
    Primarily Uses:
    RMMV
    It works great for me! Thank you.:hwink:

    but I have a little bug , the screen size on the smartphone is scaled

    the Game looks pixelated and partly the underground looks through :(

    is there a way to fix it... ?


    on my old pc i can creat the APK at the "Original" way but on my new Laptop just your way works fine.

    so i can see the Differenz, but i want to use webview.
    i hope you can help me.

    sorry for my bad English :hswt2:

    Thank you
    Domster:hhappy:

    [​IMG]

    Picture 2 is the original that i like

    [​IMG]
     
    Last edited: Nov 15, 2017
    #7
  8. Shen

    Shen Warper Member

    Messages:
    1
    Likes Received:
    0
    First Language:
    Spanish
    Primarily Uses:
    RMMV
    Any idea how can I sign this .apk, so I can test it on my phone?
     
    #8
  9. Maycon Gama Ribeiro

    Maycon Gama Ribeiro Heroes Of Equilibrium Veteran

    Messages:
    128
    Likes Received:
    15
    Location:
    Brasil - Brazil
    First Language:
    Português
    Primarily Uses:
    RMMV
    It's working perfectly now, it was just updating the program!
     
    Last edited: Dec 7, 2017
    #9
  10. Andar

    Andar Veteran Veteran

    Messages:
    25,458
    Likes Received:
    5,413
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    #10
  11. DoDomenico

    DoDomenico Warper Member

    Messages:
    2
    Likes Received:
    0
    First Language:
    Italian
    Primarily Uses:
    RMMV
    Thank your for the guide, It works!
    I've a question for You.
    If my apk size is more 100 MB can i split my resources for the upload in PlayStore?
     
    #11
  12. DoDomenico

    DoDomenico Warper Member

    Messages:
    2
    Likes Received:
    0
    First Language:
    Italian
    Primarily Uses:
    RMMV
    Hello, have anybody an answer for my question?
     
    #12
  13. KravenarGames

    KravenarGames Veteran Veteran

    Messages:
    84
    Likes Received:
    10
    First Language:
    English
    Primarily Uses:
    N/A
    Super help needed. Are webm files playing correctly with this procedure?
     
    #13
  14. xilefian

    xilefian Veteran Veteran

    Messages:
    89
    Likes Received:
    127
    First Language:
    English
    The MV Android Client has had some updates today:
    • Updated to latest version of Gradle.
    • Updated to latest version of AppCompat library.
    • Crosswalk renamed to zz_Crosswalk so WebView is now default selected web engine
    • Default applicationId no longer has Altimit Systems branding.
    • An empty quit_message string-array (see values.xml) will now disable the quit message (resolves concerns about Google expected app behaviour for games).
     
    Last edited: Dec 31, 2017
    #14
    elpeleq42 likes this.
  15. sieben43

    sieben43 Veteran Veteran

    Messages:
    66
    Likes Received:
    10
    First Language:
    German, English
    Primarily Uses:
    RMMV
    Hello, thanks for this great tutorial. This is was exactly what I was looking for.
    After running into some issues I could fix by updating everything properly since I had parts of the android-sdk but not Android Studio installed, I managed to get the app to not crash at start. I can now see my custom title screen and everything is running fine. But when I start a new game it tells me, that it can't find resources that are obviously included in the asset folder, I even opened the apk with winrar and the resources are there, some other resources also have already been loaded for the title screen.
    Do you know, what could cause this error? I can provide logs if necessary.
    However, the logs say that the game is unable to access the path for the UI elements. Since they are stored in an additional folder, that is not part of the "RTP" that comes with MV, does this mean I have to add the folders paths somewhere?
     
    #15
  16. Andar

    Andar Veteran Veteran

    Messages:
    25,458
    Likes Received:
    5,413
    Location:
    Germany
    First Language:
    German
    Primarily Uses:
    RMMV
    @sieben43
    Android is not Windows, and Windows is the only software that has a stupid override that let's you load the wrong file due to Microsofts Idiocy.

    One example:
    Abc.png and abc.png are two different files, because A is a different letter than a.
    On any operating system other than Windows, trying to load Abc.png when the true filename is abc.png will result in a "file not found".
    On Windows Microsoft programmed in an override that let's you load the wrong file with a if the correct file with A can not be found.

    And there are a number of other overrides when trying to handle filenames that contain spaces or special signs, all of them are forbidden under networking rules.

    So please, go through your resources and change all filenames to conform to networking rules and your next deployment to Android should be a success.
     
    #16
    sieben43 likes this.
  17. sieben43

    sieben43 Veteran Veteran

    Messages:
    66
    Likes Received:
    10
    First Language:
    German, English
    Primarily Uses:
    RMMV
    Was googling my problem and this was one of the solutions I found, really not happy about changing all these file names now but I guess it's my only solution.
    I already removed the spaces in the first place when creating my game, but I didn't know about the capital letters.
    Thanks for your answer!
     
    #17
  18. Froilan

    Froilan Warper Member

    Messages:
    1
    Likes Received:
    0
    First Language:
    Filipino
    Primarily Uses:
    RMMV
    I keep getting this error -_- please help

    26941795_980809865390957_2001696661_o.png
     
    #18
  19. xilefian

    xilefian Veteran Veteran

    Messages:
    89
    Likes Received:
    127
    First Language:
    English
    Check your internet connection.

    If you are still unable to download CrossWalk and your internet connection is fine, then you can delete lines 58-61 and line 76 from the app build.gradle to remove the CrossWalk configuration and stick with WebView.
     
    #19
  20. JtheDuelist

    JtheDuelist Friendly Lion Veteran

    Messages:
    953
    Likes Received:
    1,193
    Location:
    RMW Forums, Granvia, or Askr
    First Language:
    English
    Primarily Uses:
    RMMV
    @xilefian Should building the apk be taking over an hour for just the sample game? I really need a newer computer with the appropriate resolution, but lack the money (I do have a different "new-ish" computer that runs fast, but its resolution is too small and cuts MV off enough to be unusable)....
     
    #20

Share This Page