How to complile android arm64 export templates for Godot 2.1? Compile arm64 export templates for Godot 2.1 error.

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By qaqaforum

Hello!
I compile export template for android with module AdMob (enter link description here) for Godot 2.1 (Latest commit e898b0a on 16 Jan)
Win 10 X64, VS2015, NDK r19c X86_64

Compile for armv7

scons platform=android target=release

[ 97%] ←[91mLinking Shared Library ←[95m==> ←[93mbin\libgodot.android.opt.armv7.
neon.so←[0m
[100%] progress_finish(["progress_finish"], [])
[100%] scons: done building targets.
  • succes

Compile for arm64

scons platform=android target=release android_arch=arm64v8

[ 97%] <[91mLinking Shared Library <[95m==> <[93mbin\libgodot.android.opt.armv8.
so<[0m
=====
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find crtbegin_so.o: No such file or directory
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lOpenSLES
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lEGL
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lOpenSLES
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -landroid
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -llog
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lGLESv1_CM
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lGLESv2
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lz
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lstdc++
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lm
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -ldl
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -lc
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find -ldl
D:\android\ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/
gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot
 find crtend_so.o: No such file or directory
clang++.exe: error: linker command failed with exit code 1 (use -v to see invoca
tion)

=====
scons: *** [bin\libgodot.android.opt.armv8.so] Error 1
scons: building terminated because of errors.
  • error

Please help.
Thank you!

Hi,
I looked for tutorial like you did, I do not know how to start, how did you manage? I downloaded it:

  • Python (already installed)
  • Android SDK (already installed)
  • JDK 8 (already installed)
    I did not find these to install, what I do and how I do:
  • Android NDK
  • SCons
    which command?

can you teach me? I want to do more or less like yours, if I can, I’ll help you too.
sorry my English is bad

Skyline | 2019-03-23 01:03

I found error in platform\android\detect.py in line 145

  ndk_platform = "android-21"

replace to

env["ndk_platform"] = "android-21"

Original part source

elif env["android_arch"] == "arm64v8":
    if get_platform(ndk_platform) < 21:
        print("WARNING: android_arch=arm64v8 is not supported by ndk_platform lower than android-21; setting ndk_platform=android-21")
        ndk_platform = "android-21"

After replace

       elif env["android_arch"] == "arm64v8":
            if get_platform(ndk_platform) < 21:
                print("WARNING: android_arch=arm64v8 is not supported by ndk_platform lower than android-21; setting ndk_platform=android-21")
                env["ndk_platform"] = "android-21"

But other error with OpenSSL

[Initial build] <[91mLinking Shared Library <[95m==> <[93mbin\libgodot.android.o
pt.armv8.so<[0m
=====
modules\libmodules.android.opt.armv8.a(ui_openssl.android.opt.armv8.o): In funct
ion `read_string_inner':
ui_openssl.c:(.text.read_string_inner+0xac): undefined reference to `bsd_signal'

clang++.exe: error: linker command failed with exit code 1 (use -v to see invoca
tion)

=====
scons: *** [bin\libgodot.android.opt.armv8.so] Error 1
scons: building terminated because of errors.

If compiled with module_openssl_enabled=no



scons platform=android target=release android_arch=arm64v8 module_openssl_enabled=no

Compiled succes.

Error like https://stackoverflow.com/questions/36746904/android-linker-undefined-reference-to-bsd-signal ?

qaqaforum | 2019-03-27 06:27

:bust_in_silhouette: Reply From: qaqaforum

**

This problem fixed in latest commit !

**

Thanks!