安装Python-For-Android Linux Ubuntu,构建错误

时间:2016-12-08 06:56:26

标签: android linux installation kivy

我试图建立一个测试项目只是为了看看安装是否有效,但我几乎立即得到了这个错误.....

/首页/ kivy /安卓/ SDK /平台工具/工具/机器人

我已经安装了Android Studio并运行了更新。我安装了所需的14(android 4.0)工具。我下载了NDK,即使Android Studio创建了一个包含工具,平台,平台工具等文件夹的新Android文件夹,我仍然下载了独立文件夹Android-Linux(r24.4.1)。

Android-Linux和NDK正坐在家里/ documents / sdk_ndk /...

Android Studio创建的Android文件夹位于home / Android

Android Studio本身带有NDK和Android-Linux文件夹。

.bashrc有......

            export ANDROIDSDK=$HOME/Documents/sdk_ndk/android-sdk-r24.4.1
            export ANDROIDNDK=$HOME/Documents/sdk_ndk/android-ndk-r13b
            export ANDROIDAPI="14"
            export ANDROIDNDKVER="r13b"

我甚至试过......

            export ANDROIDSDK=$HOME/Android/sdk
            export ANDROIDNDK=$HOME/Documents/sdk_ndk/android-ndk-r13b
            export ANDROIDAPI="14"
            export ANDROIDNDKVER="r13b"

构建命令......

            p4a apk --private ~/Desktop/testapp --package=org.example.myapp --name "testapp" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy

当我设置这个......

            export ANDROIDSDK=$HOME/Documents/sdk_ndk/android-sdk-r24.4.1

未找到Api目标14。

当我设置这个......

导出ANDROIDSDK = $ HOME / Android / sdk

我没有得到api错误,但是我得到路径错误。

            not found   /home/kivy/Android/sdk/platform-tools/tools/android

我甚至试过......

            export ANDROIDSDK=$HOME/Android/sdk/tools
            export ANDROIDSDK=$HOME/Android/sdk/platform-tools

-------更新-------------------

我在路径附近加了'“'.....

            export ANDROIDSDK="$Home/Documents/sdk_ndk/android-sdk-r24.4.1"
            #export ANDROIDSDK="$Home/Android/sdk"
            export ANDROIDNDK="$Home/Documents/sdk_ndk/android-ndk-r13b"
            export ANDROIDAPI="14"
            export ANDROIDNDKVER="r13b"

现在得到并且错误说它无法找到/ tools / android。这很奇怪,因为tools文件夹中有一个Android文件。它没有.sh扩展名,但它就在那里。

这是整个终端输出......

            kivy@kivy-VirtualBox:~$ p4a apk --private ~/Desktop/testapp --package=org.urchatty.com --name "testapp" --version 0.1 --bootstrap=sd12 --requirements=python2,kivy
            [INFO]:    This python-for-android revamp is an experimental alpha release!
            [INFO]:    It should work (mostly), but you may experience missing features or bugs.
            [INFO]:    Will compile for the following archs: armeabi
            [INFO]:    Found Android API target in $ANDROIDAPI
            Traceback (most recent call last):
              File "/usr/local/bin/p4a", line 9, in <module>
                load_entry_point('python-for-android==0.4', 'console_scripts', 'p4a')()
              File "/usr/local/lib/python2.7/dist-packages/pythonforandroid/toolchain.py", line 754, in main
                ToolchainCL()
              File "/usr/local/lib/python2.7/dist-packages/pythonforandroid/toolchain.py", line 343, in __init__
                getattr(self, command_method_name)(unknown)
              File "/usr/local/lib/python2.7/dist-packages/pythonforandroid/toolchain.py", line 87, in wrapper_func
                user_ndk_ver=self.ndk_version)
              File "/usr/local/lib/python2.7/dist-packages/pythonforandroid/build.py", line 226, in prepare_build_environment
                android = sh.Command(join(sdk_dir, 'tools', 'android'))
              File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1029, in __init__
                raise CommandNotFound(path)
            sh.CommandNotFound: /Documents/sdk_ndk/android-sdk-r24.4.1/tools/android
            kivy@kivy-VirtualBox:~$ 

---------更新-------------------------

似乎我在bashrc中的路径必须写成......“/ home / kivy / ....”。在我发现另一个错误之前我没有走远......

            kivy@kivy-VirtualBox:~$ p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My application" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy
            [INFO]:    This python-for-android revamp is an experimental alpha release!
            [INFO]:    It should work (mostly), but you may experience missing features or bugs.
            [INFO]:    Will compile for the following archs: armeabi
            [INFO]:    Found Android API target in $ANDROIDAPI
            [INFO]:    Available Android APIs are (4, 19)
            [INFO]:    Requested API target 19 is available, continuing.
            [INFO]:    Found NDK dir in $ANDROIDNDK
            [INFO]:    Got NDK version from $ANDROIDNDKVER
            [INFO]:    Using Google NDK r13b
            [INFO]:    Found virtualenv at /usr/local/bin/virtualenv
            [WARNING]: ndk_platform doesn't exist: /home.kivy/Documents/android-ndk-r13b/platforms/android-19/arch-arm
            [WARNING]: Could not find toolchain subdirectory!
            [WARNING]: Could not find any toolchain for arm-linux-androideabi!
            [WARNING]: Missing executable: autoconf is not installed
            [WARNING]: Missing executable: automake is not installed
            [WARNING]: Missing executable: libtoolize is not installed
            [ERROR]:   python-for-android cannot continue; aborting
            kivy@kivy-VirtualBox:~$ 

2 个答案:

答案 0 :(得分:1)

EL3PHANTEN的回答有所不同。

           # $ANDROIDSDK/tools/android update sdk --no-ui --filter 2,3,15

使用终端而不是管理器似乎有所帮助。为SDK下载的文件实际上更少。使用SDK Manager UI,它们要大得多。

另一个技巧是在bashrc中。路径必须以“/”开头。

           "/home/kivy/Documents/...."

最后,p4a正在做这件事。 Kivy网站真的应该更新它的Docs以包含EL3PHANTEN的目的。此外,文档中使用的路径样式......

           export ANDROIDSDK="$HOME/Documents/android-sdk-21"
           export ANDROIDNDK="$HOME/Documents/android-ndk-r10e"
           export ANDROIDAPI="14"  # Minimum API version your application require
           export ANDROIDNDKVER="r10e"  # Version of the NDK you installed

如果由于某种原因,这不会削减。如果我早些时候得到EL3PHANTEN的帮助而不是按原样在Kivy网站上做任何事情,我本可以为自己节省大量的带宽和时间。

我现在唯一想到的是,接下来我会遇到什么错误?显然,关于这些东西的文件不是100%。

答案 1 :(得分:0)

正如您的错误所示,找不到android文件夹中的sdk/tools。因此,您的ANDROIDSDK变量错误,或者您的tools文件夹不包含android

如果是路径变量,请检查sdk的路径 如果缺少android可执行文件,请在更新sdk时尝试以下步骤。

您可能在不选择套餐的情况下更新了所有内容 这意味着您的tools文件夹现在可能为空 您现在可以做的是,在tools中找到已打包的/home/kivy/Android/sdk/platform-tools/temp文件夹,或删除整个sdk文件夹,然后重试。
更新android-sdk的正确方法是:

(以下过程花费的时间较少,因为您不需要所有包裹)

首先下载并解压缩sdk。

由于我们不需要所有包,我们首先需要一个可用包列表。

# ANDROIDSDK="$HOME/Android/sdk"
# $ANDROIDSDK/tools/android list sdk

现在我们得到一个包列表 我们需要安装build_tools和platform_tools,在我的例子中显示为2和3.此外,我们需要SDK Platform Android 4.0.3, API 15,因为我们选择了API版本15.在我的情况下,此包也偶然显示为15。 (或任何你想要的API)

所以我们添加过滤器2,3,15。

请确保不要安装在我的情况下显示为1的Android SDK Tools。这将清空tools文件夹,我们不希望这样。

请注意

您的过滤器可能有所不同,然后在上面说明。

然后运行此命令以安装您选择的软件包:

# $ANDROIDSDK/tools/android update sdk --no-ui --filter 2,3,15