Android SDK 工具:OpenCV 需要 Android SDK 工具修订版 14 或更新版本

Moh*_*min 7 opencv apk kivy buildozer

我正在尝试使用 kivy、opencv 创建一个简单的照片捕获应用程序。当我尝试使用 buildozer 创建一个 .apk 文件,并将 opencv 放在 .spec 文件的需求中时,我遇到了这个错误

-- Android: fixup -g compiler option from Android toolchain
-- Update variable ANDROID_SDK from environment: /home/livon/.buildozer/android/platform/android-sdk
-- Android SDK Tools: ver. 2.0 (description: 'Android SDK Command-line Tools')
-- Android SDK Build Tools: ver. 30.0.0 (subdir 30.0.0 from 30.0.0)
CMake Error at cmake/android/OpenCVDetectAndroidSDK.cmake:176 (message):
Android SDK Tools: OpenCV requires Android SDK Tools revision 14 or newer.

Use BUILD_ANDROID_PROJECTS=OFF to prepare Android project files without
building them
Call Stack (most recent call first):
CMakeLists.txt:780 (include)


-- Configuring incomplete, errors occurred!
See also "/home/livon/Desktop/Ocv/.buildozer/android/platform/build-armeabi- 
v7a/build/other_builds/opencv/armeabi-v7a__ndk_target_21/opencv/build/CMakeFiles/CMakeOutput.log".
See also "/home/livon/Desktop/Ocv/.buildozer/android/platform/build-armeabi- 
v7a/build/other_builds/opencv/armeabi-v7a__ndk_target_21/opencv/build/CMakeFiles/CMakeError.log".er
# Command failed: /home/livon/venv/bin/python3 -m pythonforandroid.toolchain create --dist_name=test 
--bootstrap=sdl2 --requirements=python3,kivy,opencv --arch armeabi-v7a --copy-libs --color=always -- 
storage-dir="/home/livon/Desktop/Ocv/.buildozer/android/platform/build-armeabi-v7a" --ndk-api=21
# ENVIRONMENT:
#     ANDROIDNDK = '/home/livon/.buildozer/android/platform/android-ndk-r19c'
#     ANDROIDAPI = '27'
#     ANDROIDMINAPI = '21'
Run Code Online (Sandbox Code Playgroud)

我也尝试更新 ANDROID_SDK,我去了 (/home/livon/.buildozer/android/platform/android-sdk) 这个文件夹并使用更新它

sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

但是将其更新为 30.0.0 后没有任何变化,错误保持不变。

我正在使用

  1. Ubuntu 19.10
  2. 蟒蛇 3.7.5
  3. 基维 1.11.1
  4. 生成器 1.2.0
  5. openCv 4

Pau*_*Lam 1

我也遇到这个错误,烦恼了很长时间:(

经过大量谷歌搜索后,我找到了一些可能有帮助的解决方案。

至少它可以在我的 Ubuntu 20.04 VM 上运行。

(下载 Android Studio 并复制粘贴目录部分(最后 3 个步骤)的说明可能会解决您的问题,因为我也遇到了与您相同的错误)

我的buildozer.spec

title = Screen_Recorder
package.name = screen_recorder
package.domain = org.test
souce.dir = .
source.include_exts = py,png,jpg,kv,atlas
requirements = python3,kivy==2.0.0,android,opencv==4.5.3,numpy,pillow,EasyProcess,entrypoint2,mss,jeepney,plyer,pyscreenshot
osx.python_version = 3
osx.kivy_version = 2.0.0
android.permission = CAMERA,RECORD_AUDIO,WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)

参考

笔记

  • 如果更改根目录,请关闭终端并重新打开它
  • 不要编辑该.bashrc文件(就我而言,我没有)
  • 每次重建项目运行时删除项目目录中的bin和dir.buildozerbuildozer <platform> clean
  • 用于ls列出当前目录中的所有文件+文件夹
  • 用于 cd <dir> 导航到目录
  • 用于 cd .. 导航到上一个目录
  • 如果您需要类似的权限CAMERA,您需要将其添加到buildozer.specpermission在您的中添加以下内容*.py以获得android 权限
    from kivy.utils import platform
    
        if platform == "android":
    
            from android.permissions import request_permissions, Permission
    
            request_permissions([ <permissions> ])  # e.g. Permission.WRITE_EXTERNAL_STORAGE , Permission.READ_EXTERNAL_STORAGE , Permission.CAMERA , Permission.RECORD_AUDIO , etc.
    
    Run Code Online (Sandbox Code Playgroud) (您不需要安装或导入android,只需包含androidbuildozer.specrequirement

希望对您有帮助(如有不正确的地方请指正)