首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装Python-For-Android Linux Ubuntu,构建错误

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

Stack Overflow用户
提问于 2016-12-08 14:56:26
回答 2查看 2.4K关注 0票数 1

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

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

我已经安装了Android Studio并运行了更新。我安装了所需的14个(android 4.0)工具。我下载了NDK,尽管Android Studio创建了一个新的Android文件夹,里面有tools、platform、platform-tools等文件夹,但我仍然下载了独立的文件夹Android-Linux (r24.4.1)。

Android-Linux和NDK位于主页/document/sdk_ndk/...

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

Android Studio本身包含NDK和Android-Linux文件夹。

.bashrc有..。

代码语言:javascript
复制
            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"

我甚至试过..。

代码语言:javascript
复制
            export ANDROIDSDK=$HOME/Android/sdk
            export ANDROIDNDK=$HOME/Documents/sdk_ndk/android-ndk-r13b
            export ANDROIDAPI="14"
            export ANDROIDNDKVER="r13b"

生成命令是....

代码语言:javascript
复制
            p4a apk --private ~/Desktop/testapp --package=org.example.myapp --name "testapp" --version 0.1 --bootstrap=sdl2 --requirements=python2,kivy

当我设置这个的时候..。

代码语言:javascript
复制
            export ANDROIDSDK=$HOME/Documents/sdk_ndk/android-sdk-r24.4.1

找不到Api目标14。

当我设置这个的时候..。

导出ANDROIDSDK=$HOME/Android/sdk

我没有得到一个api错误,但我得到了路径错误。

代码语言:javascript
复制
            not found   /home/kivy/Android/sdk/platform-tools/tools/android

我甚至试过..。

代码语言:javascript
复制
            export ANDROIDSDK=$HOME/Android/sdk/tools
            export ANDROIDSDK=$HOME/Android/sdk/platform-tools

-更新

我在路径周围添加了'"‘.....

代码语言:javascript
复制
            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"

现在get和错误显示找不到/tools/android。这很奇怪,因为tools文件夹中有一个Android文件。它没有.sh扩展名,但它确实存在。

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

代码语言:javascript
复制
            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/....“。我没走多远就又犯了一个错误……

代码语言:javascript
复制
            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:~$ 
EN

回答 2

Stack Overflow用户

发布于 2016-12-09 10:37:34

EL3PANTEN的回答让情况有所不同。

代码语言:javascript
复制
           # $ANDROIDSDK/tools/android update sdk --no-ui --filter 2,3,15

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

另一个技巧是在bashrc中。路径只能以"/“开头。

代码语言:javascript
复制
           "/home/kivy/Documents/...."

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

代码语言:javascript
复制
           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
EN

Stack Overflow用户

发布于 2016-12-08 20:10:58

正如你的错误所说,它找不到应该在你的sdk/tools文件夹中的android。因此,您的ANDROIDSDK变量是错误的,或者您的tools文件夹不包含android

如果是path变量,请检查sdk的路径。

如果您的android可执行文件丢失,请在更新sdk时尝试执行以下步骤。

您可能更新了所有内容,而没有选择包。

这意味着你的tools文件夹现在可能是空的。

您现在可以做的是在/home/kivy/Android/sdk/platform-tools/temp中找到压缩的tools文件夹,或者删除整个sdk文件夹,然后重试。

更新android-sdk的正确方法是:

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

首先下载并解压sdk。

因为我们不需要所有的包,所以我们首先需要一个可用包的列表。

代码语言:javascript
复制
# ANDROIDSDK="$HOME/Android/sdk"
# $ANDROIDSDK/tools/android list sdk

现在我们得到了一个包的列表。

我们需要安装build_tools和platform_tools,在我的例子中显示为2和3。此外,我们还需要SDK Platform Android 4.0.3, API 15,因为我们选择了API15版。(或者你想要的任何API )

因此,我们添加过滤器2,3,15。

请务必不要安装Android SDK Tools,在我的示例中,它显示为1。这将清空tools文件夹,我们不希望发生这种情况。

备注

您的过滤器可能会有所不同,然后在上面解释。

然后运行以下命令来安装您选择的包:

代码语言:javascript
复制
# $ANDROIDSDK/tools/android update sdk --no-ui --filter 2,3,15
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41033549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档