Skip to content

apk create failed when --storage-dir used #1611

Description

@maho

Versions

The most recent docker image of P4a, py3 version

Description

I'm trying to build example from kivy (pong), and failed.

Steps to reproduce:

  1. checkout kivy
  2. go to examples/tutorial/pong
  3. mkdir dist dir and copy .py and .kv file there
  4. run following command (assuming that you have py4apy3 docker image already built):
maho@mac ~/workspace-p/kivy/examples/tutorials/pong $ docker run -v \
    $PWD:/home/user/hostcwd -v ~/workspace-p/python-for-android:/src -it --rm p4apy3 \
    venv/bin/p4a apk p4a create --sdk-dir=/opt/android/android-sdk/ --android-api=27 \
    --ndk-dir=/opt/android/android-ndk-r17c --ndk-version=r17c \
    --requirements=python3,kivy --package=maho.test --name=pong \
    --version=0.0.1 --private=/home/user/hostcwd/dist --debug --dist-name=mypong2 \
    --storage-dir=/home/user/hostcwd/dist/.storage 2>&1 | tee build-log.log

Result ends with:

[armeabi-v7a] SharedLibrary  : libmain.so
/opt/android/android-ndk-r17c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,libmain.so -shared --sysroot=/opt/android/android-ndk-r17c/platforms/android-21/arch-arm /home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/obj/local/armeabi-v7a/objs/main/__/__/SDL/src/main/android/SDL_android_main.o /home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/obj/local/armeabi-v7a/objs/main/start.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a /home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/obj/local/armeabi-v7a/libSDL2.so  -gcc-toolchain /opt/android/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -no-canonical-prefixes -target armv7-none-linux-androideabi21 -Wl,--fix-cortex-a8 -L/home/user/hostcwd/dist/.storage/build/other_builds/python3/armeabi-v7a__ndk_target_21/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/opt/android/android-ndk-r17c/platforms/android-21/arch-arm/usr/lib -lGLESv1_CM -lGLESv2 -llog -lpython3.7m -lc -lm -o /home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/obj/local/armeabi-v7a/libmain.so
/opt/android/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lpython3.7m
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:49: error: undefined reference to 'PyModule_Create2'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:111: error: undefined reference to 'Py_SetProgramName'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:116: error: undefined reference to 'PyImport_AppendInittab'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:149: error: undefined reference to 'Py_DecodeLocale'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:150: error: undefined reference to 'Py_SetPath'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:161: error: undefined reference to 'Py_Initialize'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:178: error: undefined reference to 'PyEval_InitThreads'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:184: error: undefined reference to 'PyRun_SimpleStringFlags'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:190: error: undefined reference to 'PyRun_SimpleStringFlags'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:196: error: undefined reference to 'PyRun_SimpleStringFlags'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:212: error: undefined reference to 'PyRun_SimpleStringFlags'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:313: error: undefined reference to 'PyRun_SimpleFileExFlags'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:315: error: undefined reference to 'PyErr_Occurred'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:317: error: undefined reference to 'PyErr_Print'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:318: error: undefined reference to 'PySys_GetObject'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:319: error: undefined reference to 'PyFile_WriteString'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:321: error: undefined reference to 'PyErr_Clear'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:326: error: undefined reference to 'Py_Finalize'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/jni/application/src/start.c:33: error: undefined reference to '_PyArg_ParseTuple_SizeT'
/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/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: *** [/home/user/hostcwd/dist/.storage/build/bootstrap_builds/sdl2/obj/local/armeabi-v7a/libmain.so] Error 1


  STDERR:

Full log is in gist: https://gist.github.com/mahomahomaho/f6f912cfee7a18136ed931083a2fc809

Funny thing is, that when I remove --storage-dir parameter, distribution is built properly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions