如何将p4a发行版转换为APK?

时间:2018-11-09 23:13:35

标签: android android-emulator kivy apk python-3.6

我有一个简单的python-kivy程序,终于让python-for-android运行 一路过关斩将p4a被踢出的最后一件事是:

Dist can be found at (for now) /home/username/.local/share/python-for-android/dists/unnamed_dist_1

p4a入门文档说:“发行版是所有已编译需求的最终“构建”,因为它可以直接转换为APK,这是一个Android项目。”因此,我认为还有另外一步。我只是不确定是什么。

我遵循了p4a文档中的“ hello world”示例,但是在第4步中,它说“转到python-for-android目录”,这到底在哪里?它在我的系统上不存在。假设我找到该目录,则继续说类型./distribute.sh -m kivy。我的系统上没有名为distribution.sh的文件。然后我的问题是,如何将发行版本(他们给我的目录中的文件)转换成APK以放入手机中。 我在具有Python 3.6和Python 2.7的VM中使用Ubuntu 18.04。 Kivy == 1.10.1,我输入的命令是p4a apk -v --sdk_dir /home/username/kivy --android_api 21。 .p4a的内容为:

--requirements=sdl2,python3crystax,kivy
--private /home/username/kivy/
--package=org.myapp
--name="myapp"
--version=0.5
--bootstrap=sdl2
--permission INTERNET, WRITE_EXTERNAL_STORAGE
--ndk-dir /home/username/kivy/crystax-10.3.2
--sdk-kir /home/username/kivy/tools
--arch=armeabi-v7a

我的项目目录的名称是'kivy'。我正在使用Crystax-NDK

日志

[INFO]:    Reading .p4a configuration
[INFO]:    Will compile for the following archs: armeabi-v7a
[INFO]:    Getting Android API version from user argument
[INFO]:    Available Android APIs are (21)
[INFO]:    Requested API target 21 is available, continuing.
[INFO]:    Getting NDK dir from from user argument
[INFO]:    Got NDK version from $ANDROIDNDKVER
[INFO]:    Got Android NDK version from the NDK dir: it is 10.3.2
[WARNING]: NDK API target was not set manually, using the default of 21 = min(android-api=21, default ndk-api=21)
[INFO]:    Using Crystax NDK 10.3.2
[INFO]:    Found virtualenv at /usr/bin/virtualenv
[INFO]:    ccache is missing, the build will not be optimized in the future.
[INFO]:    Found the following toolchain versions: ['4.9', '5', 'clang3.6', 'clang3.7']
[INFO]:    Picking the latest gcc toolchain, here 5
[INFO]:    No existing dists meet the given requirements!
[INFO]:    No dist exists that meets your requirements, so one will be built.
[INFO]:    Found a single valid recipe set: ['hostpython3crystax', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'python3crystax', 'sdl2', 'six', 'pyjnius', 'kivy']
[INFO]:    The selected bootstrap is sdl2
[INFO]:    # Creating dist with sdl2 bootstrap
[INFO]:    Dist will have name unnamed_dist_2 and recipes (sdl2, python3crystax, kivy)
[INFO]:    Dist will also contain modules () installed from pip
[INFO]:    -> running cp -r /usr/local/lib/python3.6/dist-packages/pythonforandroid/boo...(and 103 more)
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Recipe build order is ['hostpython3crystax', 'sdl2_image', 'sdl2_mixer', 'sdl2_ttf', 'python3crystax', 'sdl2', 'six', 'pyjnius', 'kivy']
[INFO]:    # Downloading recipes
[INFO]:    Downloading hostpython3crystax
[INFO]:    Skipping hostpython3crystax download as no URL is set
[INFO]:    Downloading sdl2_image
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/sdl2_image
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/sdl2_image
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz
[INFO]:    sdl2_image download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading sdl2_mixer
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/sdl2_mixer
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/sdl2_mixer
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.tar.gz
[INFO]:    sdl2_mixer download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading sdl2_ttf
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/sdl2_ttf
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/sdl2_ttf
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.14.tar.gz
[INFO]:    sdl2_ttf download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading python3crystax
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/python3crystax
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/python3crystax
[INFO]:    -> running basename
[INFO]:    -> running rm -f .mark-
[INFO]:    -> running touch .mark-
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading sdl2
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/sdl2
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/sdl2
[INFO]:    -> running basename https://www.libsdl.org/release/SDL2-2.0.4.tar.gz
[INFO]:    sdl2 download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading six
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/six
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/six
[INFO]:    -> running basename https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
[INFO]:    six download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading pyjnius
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/pyjnius
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/pyjnius
[INFO]:    -> running basename https://github.com/kivy/pyjnius/archive/1.1.3.zip
[INFO]:    pyjnius download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Downloading kivy
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/packages/kivy
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/packages/kivy
[INFO]:    -> running basename https://github.com/kivy/kivy/archive/1.10.1.zip
[INFO]:    kivy download already cached, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    # Building all recipes for arch armeabi-v7a
[INFO]:    # Unpacking recipes
[INFO]:    Unpacking hostpython3crystax for armeabi-v7a
[INFO]:    Skipping hostpython3crystax unpack as no URL is set
[INFO]:    Unpacking sdl2_image for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.1.tar.gz
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax/jni
[INFO]:    sdl2_image is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking sdl2_mixer for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.1.tar.gz
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax/jni
[INFO]:    sdl2_mixer is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking sdl2_ttf for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.14.tar.gz
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax/jni
[INFO]:    sdl2_ttf is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking python3crystax for armeabi-v7a
[INFO]:    -> running basename
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/python3crystax-version3.6/armeabi-v7a__ndk_target_21
[INFO]:    python3crystax is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking sdl2 for armeabi-v7a
[INFO]:    -> running basename https://www.libsdl.org/release/SDL2-2.0.4.tar.gz
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax/jni
[INFO]:    sdl2 is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking six for armeabi-v7a
[INFO]:    -> running basename https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/six-python3crystax/armeabi-v7a__ndk_target_21
[INFO]:    six is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking pyjnius for armeabi-v7a
[INFO]:    -> running basename https://github.com/kivy/pyjnius/archive/1.1.3.zip
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a__ndk_target_21
[INFO]:    pyjnius is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Unpacking kivy for armeabi-v7a
[INFO]:    -> running basename https://github.com/kivy/kivy/archive/1.10.1.zip
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/kivy-python3crystax-sdl2/armeabi-v7a__ndk_target_21
[INFO]:    kivy is already unpacked, skipping
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    # Prebuilding recipes
[INFO]:    Prebuilding hostpython3crystax for armeabi-v7a
[INFO]:    hostpython3crystax has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding sdl2_image for armeabi-v7a
[INFO]:    sdl2_image has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for sdl2_image[armeabi-v7a]
[INFO]:    sdl2_image already patched, skipping
[INFO]:    Prebuilding sdl2_mixer for armeabi-v7a
[INFO]:    sdl2_mixer has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for sdl2_mixer[armeabi-v7a]
[INFO]:    sdl2_mixer already patched, skipping
[INFO]:    Prebuilding sdl2_ttf for armeabi-v7a
[INFO]:    sdl2_ttf has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding python3crystax for armeabi-v7a
[INFO]:    python3crystax has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding sdl2 for armeabi-v7a
[INFO]:    sdl2 has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for sdl2[armeabi-v7a]
[INFO]:    sdl2 already patched, skipping
[INFO]:    Prebuilding six for armeabi-v7a
[INFO]:    six has no prebuild_armeabi_v7a, skipping
[INFO]:    Prebuilding pyjnius for armeabi-v7a
[INFO]:    pyjnius has no prebuild_armeabi_v7a, skipping
[INFO]:    Applying patches for pyjnius[armeabi-v7a]
[INFO]:    pyjnius already patched, skipping
[INFO]:    Prebuilding kivy for armeabi-v7a
[INFO]:    kivy has no prebuild_armeabi_v7a, skipping
[INFO]:    # Building recipes
[INFO]:    Building hostpython3crystax for armeabi-v7a
[INFO]:    -> running mkdir -p /home/oli/.local/share/python-for-android/build/other_bu...(and 56 more)
[INFO]:    -> running ln -sf /usr/bin/python3.6 /home/oli/.local/share/python-for-andro...(and 78 more)
[INFO]:    Building sdl2_image for armeabi-v7a
[INFO]:    Building sdl2_mixer for armeabi-v7a
[INFO]:    Building sdl2_ttf for armeabi-v7a
[INFO]:    Building python3crystax for armeabi-v7a
[INFO]:    Building sdl2 for armeabi-v7a
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/bootstrap_builds/sdl2-python3crystax/jni
[INFO]:    -> running ndk-build V=1
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Building six for armeabi-v7a
[INFO]:    six apparently isn't already in site-packages
[INFO]:    Installing six into site-packages
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/six-python3crystax/armeabi-v7a__ndk_target_21/six
[INFO]:    -> running python3.6 setup.py install -O2 --root=/home/oli/.local/share/pyth...(and 67 more)
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Building pyjnius for armeabi-v7a
[INFO]:    jnius apparently isn't already in site-packages
[INFO]:    Cythonizing anything necessary in pyjnius
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a__ndk_target_21/pyjnius
[INFO]:    -> running python3.6 -c import sys; print(sys.path)
[INFO]:    Trying first build of pyjnius to get cython files: this is expected to fail
[INFO]:    -> running python3.6 setup.py build_ext -v
cwd is /home/oli/.local/share/python-for-android/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a__ndk_target_21/pyjnius
[INFO]:    First build appeared to complete correctly, skipping manualcythonising.
[INFO]:    Stripping object files
[INFO]:    -> running find . -iname *.so -exec /usr/bin/echo {} ;
[INFO]:    -> running find . -iname *.so -exec arm-linux-androideabi-strip --strip-unneeded {} ;
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Installing pyjnius into site-packages
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a__ndk_target_21/pyjnius
[INFO]:    -> running hostpython setup.py install -O2 --root=/home/oli/.local/share/pyt...(and 68 more)
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Building kivy for armeabi-v7a
[INFO]:    kivy apparently isn't already in site-packages
[INFO]:    Cythonizing anything necessary in kivy
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/kivy-python3crystax-sdl2/armeabi-v7a__ndk_target_21/kivy
[INFO]:    -> running python3.6 -c import sys; print(sys.path)
[INFO]:    Trying first build of kivy to get cython files: this is expected to fail
[INFO]:    -> running python3.6 setup.py build_ext -v
cwd is /home/oli/.local/share/python-for-android/build/other_builds/kivy-python3crystax-sdl2/armeabi-v7a__ndk_target_21/kivy
[INFO]:    First build appeared to complete correctly, skipping manualcythonising.
[INFO]:    Stripping object files
[INFO]:    -> running find . -iname *.so -exec /usr/bin/echo {} ;
[INFO]:    -> running find . -iname *.so -exec arm-linux-androideabi-strip --strip-unneeded {} ;
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Installing kivy into site-packages
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/kivy-python3crystax-sdl2/armeabi-v7a__ndk_target_21/kivy
[INFO]:    -> running hostpython setup.py install -O2 --root=/home/oli/.local/share/pyt...(and 68 more)
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    # Biglinking object files
[INFO]:    NDK is crystax, skipping biglink (will this work?)
[INFO]:    # Postbuilding recipes
[INFO]:    Postbuilding hostpython3crystax for armeabi-v7a
[INFO]:    Postbuilding sdl2_image for armeabi-v7a
[INFO]:    Postbuilding sdl2_mixer for armeabi-v7a
[INFO]:    Postbuilding sdl2_ttf for armeabi-v7a
[INFO]:    Postbuilding python3crystax for armeabi-v7a
[INFO]:    Postbuilding sdl2 for armeabi-v7a
[INFO]:    Postbuilding six for armeabi-v7a
[INFO]:    Postbuilding pyjnius for armeabi-v7a
[INFO]:    Copying pyjnius java class to classes build dir
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/build/other_builds/pyjnius-python3crystax-sdl2/armeabi-v7a__ndk_target_21/pyjnius
[INFO]:    -> running cp -a jnius/src/org /home/oli/.local/share/python-for-android/bui...(and 29 more)
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Postbuilding kivy for armeabi-v7a
[INFO]:    # Installing pure Python modules
[INFO]:    There are no Python modules to install, skipping
[INFO]:    # Creating Android project (sdl2)
[INFO]:    Copying SDL2/gradle build for armeabi-v7a
[INFO]:    -> running rm -rf /home/oli/.local/share/python-for-android/dists/unnamed_dist_2
[INFO]:    -> running cp -r /home/oli/.local/share/python-for-android/build/bootstrap_b...(and 88 more)
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/dists/unnamed_dist_2
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/dists/unnamed_dist_2
[INFO]:    Copying Python distribution
[INFO]:    Copying libs
[INFO]:    Copying java files
[INFO]:    -> running cp -a /home/oli/.local/share/python-for-android/build/javaclasses...(and 29 more)
[INFO]:    -> running cp -r /home/oli/kivy/crystax-ndk-10.3.2/sources/python/3.6/libs/a...(and 114 more)
[INFO]:    -> running cp -r /home/oli/kivy/crystax-ndk-10.3.2/sources/python/3.6/libs/a...(and 111 more)
[INFO]:    -> running cp -r /home/oli/.local/share/python-for-android/build/python-inst...(and 126 more)
[INFO]:    Renaming .so files to reflect cross-compile
[INFO]:    -> running find /home/oli/.local/share/python-for-android/dists/unnamed_dist...(and 58 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 210 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 216 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 246 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 252 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 258 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 222 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 228 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 222 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 232 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 222 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 230 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 240 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 222 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 228 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 244 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 228 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 240 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 230 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 254 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 236 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 228 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 256 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 258 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 244 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 246 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 238 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 240 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 238 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 240 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 218 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 210 more)
[INFO]:    -> running mv /home/oli/.local/share/python-for-android/dists/unnamed_dist_2...(and 210 more)
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    Stripping libraries
[INFO]:    Python was loaded from CrystaX, skipping strip
[INFO]:    Frying eggs in /home/oli/.local/share/python-for-android/dists/unnamed_dist_2/_python_bundle/_python_bundle/site-packages
[INFO]:    -> directory context /home/oli/.local/share/python-for-android/dists/unnamed_dist_2
[INFO]:    Saving distribution info
[INFO]:    <- directory context /home/oli/kivy
[INFO]:    # Your distribution was created successfully, exiting.
[INFO]:    Dist can be found at (for now) /home/oli/.local/share/python-for-android/dists/unnamed_dist_2
[INFO]:    No existing dists meet the given requirements!
Traceback (most recent call last):
  File "/usr/local/bin/p4a", line 11, in <module>
    load_entry_point('python-for-android==0.6.0', 'console_scripts', 'p4a')()
  File "/usr/local/lib/python3.6/dist-packages/pythonforandroid/toolchain.py", line 1010, in main
    ToolchainCL()
  File "/usr/local/lib/python3.6/dist-packages/pythonforandroid/toolchain.py", line 541, in __init__
    getattr(self, args.subparser_name.replace('-', '_'))(args)
  File "/usr/local/lib/python3.6/dist-packages/pythonforandroid/toolchain.py", line 148, in wrapper_func
    func(self, args)
  File "/usr/local/lib/python3.6/dist-packages/pythonforandroid/toolchain.py", line 779, in apk
    build = imp.load_source('build', join(dist.dist_dir, 'build.py'))
  File "/usr/lib/python3.6/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 684, in _load
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 674, in exec_module
  File "<frozen importlib._bootstrap_external>", line 780, in get_code
  File "/usr/lib/python3.6/imp.py", line 158, in get_data
    return super().get_data(path)
  File "<frozen importlib._bootstrap_external>", line 832, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/home/oli/.local/share/python-for-android/dists/unnamed_dist_3/build.py'

好像我添加了一个错误。为什么会在“ unnamed_dist_2”中查看?

1 个答案:

答案 0 :(得分:0)

  

我遵循了p4a文档中的“ hello world”示例

这是旧版文档中的内容,不再准确。

  

我输入的命令是p4a apk -v --sdk_dir /home/username/kivy --android_api 21

如果构建成功,则应该将apk文件复制到当前目录中。那没有发生吗?你可以张贴日志吗?