Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

p4a building apk error on Mac OS #2016

Closed
metalmonkey69 opened this issue Nov 9, 2019 · 2 comments
Closed

p4a building apk error on Mac OS #2016

metalmonkey69 opened this issue Nov 9, 2019 · 2 comments

Comments

@metalmonkey69
Copy link

Versions

  • Python: 3.7.5 (freshly installed package from python.org for Mac OS)
  • OS: Mac OS 10.15.1 Catalina
  • Kivy: 1.11.0
  • Cython: 0.28.3

Description

Trying to build a simple kivy app with p4a from a Mac OS but fails.

import kivy
from kivy.app import App
from kivy.uix.label import Label


class MyApp(App):
    def build(self):
        return Label(text="My sample app")


if __name__ == "__main__":
    MyApp().run()

Environment:

ANDROIDSDK="$HOME/Documents/android/sdk"
ANDROIDNDK="$HOME/Documents/android/android-ndk-r17c"
ANDROIDAPI="27"       # Target API version of your application
NDKAPI="27"           # Minimum supported API version of your application
ANDROIDNDKVER="r17c"  # Version of the NDK you installed

Command:

p4a apk --debug --private $HOME/Projects/kivy/simplekivy --package=org.example.myapp --name "My Simple Application" --version 0.1 --bootstrap=sdl2 --requirements=kivy

The full log is here. The part of the error which breaks the compilation is shown below

Logs

/Users/catalina69/Documents/android/android-ndk-r17c/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -Wl,-soname,libmain.so -shared --sysroot=/Users/catalina69/Documents/android/android-ndk-r17c/platforms/android-27/arch-arm /Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/objs/main/__/__/SDL/src/main/android/SDL_android_main.o /Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/objs/main/start.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a /Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/libSDL2.so  -gcc-toolchain /Users/catalina69/Documents/android/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 -no-canonical-prefixes -target armv7-none-linux-androideabi27 -Wl,--fix-cortex-a8 -L/Users/catalina69/.python-for-android/build/other_builds/python3-libffi-openssl-sqlite3/armeabi-v7a__ndk_target_27/python3/android-build -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings   -L/Users/catalina69/Documents/android/android-ndk-r17c/platforms/android-27/arch-arm/usr/lib -lGLESv1_CM -lGLESv2 -llog -lpython3.7m -lstdc++ -lc -lm -o /Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/libmain.so
/Users/catalina69/Documents/android/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpython3.7m
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:47: error: undefined reference to 'PyModule_Create2'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:154: error: undefined reference to 'Py_SetProgramName'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:160: error: undefined reference to 'PyImport_AppendInittab'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:181: error: undefined reference to 'Py_DecodeLocale'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:182: error: undefined reference to 'Py_SetPath'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:191: error: undefined reference to 'Py_Initialize'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:208: error: undefined reference to 'PyEval_InitThreads'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:214: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:220: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:229: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:232: error: undefined reference to 'PyRun_SimpleStringFlags'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:326: error: undefined reference to 'PyRun_SimpleFileExFlags'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:329: error: undefined reference to 'PyErr_Occurred'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:331: error: undefined reference to 'PyErr_Print'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:332: error: undefined reference to 'PySys_GetObject'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:333: error: undefined reference to 'PyFile_WriteString'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:335: error: undefined reference to 'PyErr_Clear'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:362: error: undefined reference to 'Py_FinalizeEx'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:31: error: undefined reference to '_PyArg_ParseTuple_SizeT'
/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/jni/application/src/start.c:0: error: undefined reference to '_Py_NoneStruct'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/Users/catalina69/.python-for-android/build/bootstrap_builds/sdl2-python3/obj/local/armeabi-v7a/libmain.so] Error 1

@metalmonkey69
Copy link
Author

metalmonkey69 commented Nov 10, 2019

Versions

p4a : 2019.8.9.1.dev0
NDK : r19c

Description

Tried the above versions as suggested and rebuild with the following command

p4a apk --debug --private $HOME/Projects/kivy/simplekivy --package=org.example.myapp --name "My Simple Application" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy

Full Log

here

Partial Log (Error portion)

: 
[DEBUG]:   	libtool: link: /Users/catalina69/Documents/android/ndk/android-ndk-r19c/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -target armv7a-linux-androideabi27 -fomit-frame-pointer -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -fPIC -shared  -fPIC -DPIC  src/.libs/prep_cif.o src/.libs/types.o src/.libs/raw_api.o src/.libs/java_raw_api.o src/.libs/closures.o src/arm/.libs/ffi.o src/arm/.libs/sysv.o   -L/Users/catalina69/.python-for-android/build/libs_collections/unnamed_dist_1/armeabi-v7a  -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb   -Wl,-soname -Wl,libffi.so -o .libs/libffi.so
[DEBUG]:   	libtool: link: arm-linux-androideabi-ar cru .libs/libffi.a  src/prep_cif.o src/types.o src/raw_api.o src/java_raw_api.o src/closures.o src/arm/ffi.o src/arm/sysv.o
[DEBUG]:   	libtool: link: arm-linux-androideabi-ranlib .libs/libffi.a
[DEBUG]:   	libtool: link: ( cd ".libs" && rm -f "libffi.la" && ln -s "../libffi.la" "libffi.la" )
[INFO]:    <- directory context /Users/catalina69/Projects/kivy
[DEBUG]:   -> running cp /Users/catalina69/.python-for-android/build/other_builds/libffi/armeabi-v7a__ndk_target_27/libffi/.libs/libffi.so /Users/catalina69/.python-for-android/build/libs_collections/unnamed_dist_1/armeabi-v7a
[INFO]:    Building sdl2_image for armeabi-v7a
[INFO]:    Building sdl2_mixer for armeabi-v7a
[INFO]:    Building sdl2_ttf for armeabi-v7a
[INFO]:    Building python2 for armeabi-v7a
[WARNING]: DEPRECATION: Support for the Python 2 recipe will be removed in 2020, please upgrade to Python 3.
[INFO]:    -> directory context /Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/android-build
[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.
[INFO]:    Activating flags for libffi
[INFO]:    Activating flags for android's zlib
[DEBUG]:   -> running configure --host=arm-linux-androideabi --build=x86_64-apple-darwin19.0.0 --enable-shared --disable-ipv6 --disable-toolbox-glue --disable-framework ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no --without-ensurepip ac_cv_little_endian_double=yes ac_cv_header_langinfo_h=no --prefix=/usr/local --exec-prefix=/usr/local --with-system-ffi
[DEBUG]:   	checking build system type... x86_64-apple-darwin19.0.0
[DEBUG]:   	checking host system type... arm-unknown-linux-androideabi
[DEBUG]:   	checking for python2.7... python2.7
[DEBUG]:   	checking for python interpreter for cross build... python2.7
[DEBUG]:   	checking for --enable-universalsdk... no
[DEBUG]:   	checking for --with-universal-archs... no
[DEBUG]:   	checking MACHDEP... linux2
[DEBUG]:   	checking EXTRAPLATDIR...
[DEBUG]:   	checking for --without-gcc... no
[DEBUG]:   	checking for --with-icc... no
[DEBUG]:   	checking for arm-linux-androideabi-gcc... /Users/catalina69/Documents/android/ndk/android-ndk-r19c/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi27-clang
[DEBUG]:   	checking whether the C compiler works... no
[DEBUG]:   	configure: error: in `/Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/android-build':
[DEBUG]:   	configure: error: C compiler cannot create executables
[DEBUG]:   	See `config.log' for more details
Exception in thread background thread for pid 91006:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 1540, in wrap
    fn(*args, **kwargs)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 2459, in background_thread
    handle_exit_code(exit_code)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 2157, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_77: 

  RAN: /Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/configure --host=arm-linux-androideabi --build=x86_64-apple-darwin19.0.0 --enable-shared --disable-ipv6 --disable-toolbox-glue --disable-framework ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no --without-ensurepip ac_cv_little_endian_double=yes ac_cv_header_langinfo_h=no --prefix=/usr/local --exec-prefix=/usr/local --with-system-ffi

  STDOUT:
checking build system type... x86_64-apple-darwin19.0.0
checking host system type... arm-unknown-linux-androideabi
checking for python2.7... python2.7
checking for python interpreter for cross build... python2.7
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... linux2
checking EXTRAPLATDIR... 
checking for --without-gcc... no
checking for --with-icc... no
checking for arm-linux-androideabi-gcc... /Users/catalina69/Documents/android/ndk/android-ndk-r19c/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi27-clang
checking whether the C compiler works... no
configure: error: in `/Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/android-build':
configure: error: C compiler cannot create executables
See `config.log' for more details


  STDERR:


Traceback (most recent call last):
  File "/Users/catalina69/Projects/kivy/kivyenv/bin/p4a", line 8, in <module>
    sys.exit(main())
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/entrypoints.py", line 18, in main
    ToolchainCL()
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 671, in __init__
    getattr(self, args.subparser_name.replace('-', '_'))(args)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 155, in wrapper_func
    build_dist_from_args(ctx, dist, args)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/toolchain.py", line 209, in build_dist_from_args
    args, "ignore_setup_py", False
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/build.py", line 580, in build_recipes
    recipe.build_arch(arch)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/recipes/python2/__init__.py", line 66, in build_arch
    super().build_arch(arch)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/python.py", line 247, in build_arch
    _env=env)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/pythonforandroid/logger.py", line 180, in shprint
    for line in output:
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 863, in next
    self.wait()
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 792, in wait
    self.handle_command_exit_code(exit_code)
  File "/Users/catalina69/Projects/kivy/kivyenv/lib/python3.7/site-packages/sh.py", line 815, in handle_command_exit_code
    raise exc
sh.ErrorReturnCode_77: 

  RAN: /Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/configure --host=arm-linux-androideabi --build=x86_64-apple-darwin19.0.0 --enable-shared --disable-ipv6 --disable-toolbox-glue --disable-framework ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no --without-ensurepip ac_cv_little_endian_double=yes ac_cv_header_langinfo_h=no --prefix=/usr/local --exec-prefix=/usr/local --with-system-ffi

  STDOUT:
checking build system type... x86_64-apple-darwin19.0.0
checking host system type... arm-unknown-linux-androideabi
checking for python2.7... python2.7
checking for python interpreter for cross build... python2.7
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... linux2
checking EXTRAPLATDIR... 
checking for --without-gcc... no
checking for --with-icc... no
checking for arm-linux-androideabi-gcc... /Users/catalina69/Documents/android/ndk/android-ndk-r19c/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi27-clang
checking whether the C compiler works... no
configure: error: in `/Users/catalina69/.python-for-android/build/other_builds/python2-libffi/armeabi-v7a__ndk_target_27/python2/android-build':
configure: error: C compiler cannot create executables
See `config.log' for more details


  STDERR:

@metalmonkey69
Copy link
Author

installed linker for MacOS and issue is solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant