Cocos2d JS 3.17 Android Black Screen

@vanminh thank you for solution.

I’m using cocos2d 3.17.1
I fixed it using your solution and added two variables to reduce copy-paste code.

android.applicationVariants.all { variant ->
    def project_root_folder = "${buildDir}/../../../../.."
    def dest_assets_folder = "${buildDir}/intermediates/merged_assets/${variant.dirName}/merge${variant.dirName}Assets/out"

    // delete previous files first
    delete dest_assets_folder

    variant.mergeAssets.doLast {
        copy {
           from project_root_folder + "/res"
           into dest_assets_folder + "/res"
        }

        copy {
            from project_root_folder + "/src"
            into dest_assets_folder + "/src"
        }

        copy {
            from project_root_folder + "/frameworks/cocos2d-x/cocos/scripting/js-bindings/script"
            into dest_assets_folder + "/script"
        }

        copy {
            from project_root_folder + "/main.js"
            from project_root_folder + "/project.json"
            into dest_assets_folder
        }

        // compile the scripts if necessary
        def compileScript = (variant.name.compareTo('release') == 0)
        if (project.hasProperty('PROP_COMPILE_SCRIPT')) {
            compileScript = (PROP_COMPILE_SCRIPT.compareTo('1') == 0)
        }

        if (compileScript) {
            compileJS(dest_assets_folder, dest_assets_folder)
        }
    }
}

I was not able to solve warning:

WARNING: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
1 Like