aws / lumberyard

Amazon Lumberyard is a free AAA game engine deeply integrated with AWS and Twitch – with full source.
Other
2.02k stars 540 forks source link

Cannot configure Android project #472

Open gitrndlab opened 4 years ago

gitrndlab commented 4 years ago

Describe the bug Base on your documentation at this page https://docs.aws.amazon.com/lumberyard/latest/userguide/android-intro.html is not possible to configure Android project. As I think it's because Google make some changes with their API (or Android Studio Team). Also there is a few mismatches between your documentation and used configuration.

Steps to reproduce

  1. Set "Compile for Android devices" in Setup Assistant,
  2. lmbr_waf configure and you will get error similiar to this one from logs (see logs).

Expected behavior Sucessfully generated VS solution with Android dependencies and compiled Android project.

Screenshots/Logs

Traceback (most recent call last):
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Scripting.py", line 226, in waf_entry_point
    run_commands()
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Scripting.py", line 342, in run_commands
    ctx = run_command(cmd_name)
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Scripting.py", line 319, in run_command
    ctx.execute()
  File ".\Tools\build\waf-1.7.13\lmbrwaflib\build_configurations.py", line 1504, in execute
    return execute_method(self)
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Configure.py", line 247, in execute
    super(ConfigurationContext, self).execute()
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Context.py", line 220, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Context.py", line 303, in recurse
    user_function(self)
  File "i:\Amazon\lumberyard\dev\wscript", line 127, in configure
    conf.load_compile_rules_for_enabled_platforms()
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Configure.py", line 458, in fun
    result = f(*k, **kw)
  File ".\Tools\build\waf-1.7.13\lmbrwaflib\build_configurations.py", line 1246, in load_compile_rules_for_enabled_platforms
    load_platform_common_settings_func()
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Configure.py", line 458, in fun
    result = f(*k, **kw)
  File "Tools\build\waf-1.7.13\platforms\platform_settings_android_armv8_clang.py", line 70, in load_android_armv8_clang_common_settings
    ctx.load_android_common_settings()
  File "i:\Amazon\lumberyard\dev\Tools\build\waf-1.7.13\waflib\Configure.py", line 458, in fun
    result = f(*k, **kw)
  File "Tools\build\waf-1.7.13\platforms\compile_settings_android.py", line 148, in load_android_common_settings
    tools_contents = os.listdir(tools_path)
WindowsError: [Error 3] Cannot find path: 'G:/android_sdk\\tools\\lib/*.*'

Lumberyard version 1.23.1

Suggested solution

  1. Update documentation (to use NDK r21, to check Android envirionment variables, provide exactly version numers eg. 29.0.1 etc.),
  2. Update android.settings.json to use Android 21 SDK (I created pull request 470 for it). Please consider to replace "latest" for BUILD_TOOL_VERSION for specified one,
  3. The problem is at tools at Android SDK - thats their update as I think. At the moment Tools are replaced by Android SDK Command-line Tools (at dafault located in cmdline-tools of Android SDK folder). Libraries required by Lumberlyard ( manifest-merger.jar, sdk-common.jar, common.jar) are at their subfolders (build-system, common, sdk-common ). So you should change WAF configuration file to get it from valid place (or I hope you will do it in cmake in next release).

I hope that will help you :)

AMZN-alexpete commented 4 years ago

Hi @researchdeveloping, we've created an internal issue LY-112659 to track this and are looking into it.