قیمت :

رایگان

LinkedIn
Twitter
Facebook
Telegram
LinkedIn
Twitter
Facebook
Telegram

این یک آموزش تک‌قسمتی رایگان است. به سبد خرید افزوده و با چند کلیک دریافت کنید.

درباره مدرس 

اطلاعات دوره

توضیحات

برگ “آموزش برنامه نویسی اندروید با پایتون (تولید فایل APK از پروژه کیوی)” در واقع بخشی از بسته آموزش Kivy مجموعه هم رویش است که در آن شیوه برنامه نویسی با پایتون در کیوی و تولید اپلیکیشن های چندسکویی قابل اجرا روی گوشی های همراه و سیستم عامل‌های دسکتاپ آموزش داده شد.
مدرس هم رویش در این فیلم آموزشی به صورت گام به گام به نحوه تولید یک اپلیکیشن اندروید از دل یک پروزه کیوی می‌پردازد. نخست کتابخانه‌های لازم از جمله buildozer و Android SDK و Android NDK دریافت می‌شوند. سپس پروژه‌ای که با Kivy و Python نوشته شده است به یک پروژه اندروید تبدیل و سرانجام فایل APK از آن تولید می‌شود.

سرفصل مطالب

سرفصل مطالب

– آشنایی با Buildozer و کاربرد آن
– آشنایی با Python for Android
– آشنایی با اپلیکیشن Kivy Launcher
– نصب کتابخانه‌های پیش نیاز Buildozer
– نصب Buildozer با دریافت نسخه آخر از گیت هاب
– اجرای دستور buildozer init و بررسی فایل buildozer.spec
– تنظیمات فایل spec مانند نام اپ، نسخه API و …
– اجرای دستور buildozer debug برای تولید پروژه اندروید و APK
– بررسی چالش‌ها و مزیت‌های استفاده از Buildozer

نظرات (11)

11 دیدگاه برای آموزش برنامه نویسی اندروید با پایتون (تولید فایل APK از پروژه کیوی)

  1. yosef.podine (خریدار محصول)

    سلام مجدد
    ممنون از راهنماییتون
    فقط یک سوال دیگه
    الان ورژن پایتون ۳.۱۱.۶ هست که روی خود اوبونتو نصب بود
    ورژن کیوی ۲.۳.۰ هست
    ورژن کیوی‌ام‌دی ۱.۲.۰ هست

    که البته برای کیوی‌ام‌دی میگه که نسخه ۲ اومده، وقتی نصبش کردم دیگه برنامه ای که نوشتم کار نمیکنه ، چون دیگه دکمه ها و چیزهایی که استفاده کردم در ورژن ۲ از کیوی‌ام‌دی اسم متفاوتی دارند و ایمپورتشون عوض شده.

    دوباره به ورژن قبلی برگشتم
    حتما نیاز هست که آخرین ورژن از کیوی‌ام‌دی رو داشته باشم؟ چون اون ویژگی و ظاهری که برای برنامه می‌خواد با همین ورژن ۱.۲.۰ هم بهش رسیدم

    الان باید برای نصب بیلدوزر با توجه به ورژن هایی که از پایتون و کیوی و کیوی‌ام‌دی دارم بیام و پیشنیازهای بیلدوزر و بعد خودش رو نصب کنم؟

    • مصطفی آصفی

      سلام وقت بخیر. به نظرم تا نیاز نشده به نسخه بالاتر ارتقا ندین. بهتره یادداشت های انتشار (release note) نسخه ۲ رو بخونید و تو ذهن داشته باشین و وقتی استفاده کنید که یه ویژگی نسخه جدید واقعا تو کارتون حیاتیه.

      پی‌نوشت: اینو تو همه کتابخانونه های پایتونی توصیه می کنم.

  2. yosef.podine (خریدار محصول)

    سلام
    در اولین مرحله قبل نصب بیلدوزر به مشکل خوردم
    من اوبونتو ورژن 23.10 توسط ویرچوال باکس نصب کردم
    طبق آموزش مربوط به نصب کیوی روی لینوکس کیوی و pip و پیش نیازهایی که اونجا گفته شد رو نصب کردم
    البته برای نصب pip و kivy در انتهای دستور نصب –break-system-packages استفاده کردم.
    مثلا :
    sudo pip3 install kivy –break-system-packages
    چون در غیر این صورت نصب انجام نمی شد.

    حالا برای نصب پیش نیازها این ارورها و پیام ها میاد و چیزی نصب نمیشه
    دستور و پیام بعدش رو با هم می ذارم.

    yosef@yosef-pc:~/Desktop$ sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev zlib1g:i386 libncurses5-dev libltdl-dev libffi-dev libssl-dev autotools-dev libncursesw5-dev libtinfo5 cmake
    [sudo] password for yosef:
    Reading package lists… Done
    Building dependency tree… Done
    Reading state information… Done
    Note, selecting ‘libncurses-dev’ instead of ‘libncurses5-dev’
    Note, selecting ‘libncurses-dev’ instead of ‘libncursesw5-dev’
    Package libpangox-1.0-0:i386 is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Unable to locate package libncurses5:i386
    E: Package ‘libpangox-1.0-0:i386’ has no installation candidate
    E: Unable to locate package libidn11:i386
    E: Unable to locate package python2.7
    E: Couldn’t find any package by glob ‘python2.7’
    E: Couldn’t find any package by regex ‘python2.7’
    E: Unable to locate package python2.7-dev
    E: Couldn’t find any package by glob ‘python2.7-dev’
    E: Couldn’t find any package by regex ‘python2.7-dev’
    E: Unable to locate package libtinfo5

    • مصطفی آصفی

      سلام وقت بخیر. احتمالا مشکلتون ناسازگاری نسخه ها ست. برای مثال تو این خطر
      Note, selecting ‘libncurses-dev’ instead of ‘libncurses5-dev’
      میگه به جایlibncurses5-dev دارم libncurses-dev رو استفاده می کنم که پایین تر اولین خط خطا هم مربوط به همونه. کتابخونه های پایتون همیشه در معرض مشکلات نسخه وابستگی هاشون هستن. کیوی از همه بدتر چون خیلی کتابخونه های ویژه ای رو کنار هم چیده. شما باید نصب کیوی و بیلدوزر رو خیلی دقیق انجام بدین. حالا یا با مطالعه مستندات یا با تقلید دقیق نسخه ها از روی آموزش. من اینجا کیوی ۱.۱۱.۱ رو نصب کردم اما الان کیوی ۲ اومده. پس شما با دستور pip install kivy بدون تعیین شماره نسخه خودبه خود نسخه ۲ رو می گیرید و مسیرتون جدا میشه. دو کار می تونید بکنید.
      ۱- نسخه ها رو مشابه آموزش پیش برید. مثلا می تونید با راهنمای این نشانی (+) که درس نصب کیوی هم بر اساس اون پیش رفتیم نسخه مشابه برای کیوی و بعدتر برای بیلدوزر یپش برید. تو این مخزن گیت هاب (+) محیط مجازی رو هم آپلود کردم. تو این مخزن هم فایل requirements.txt رو آپلود کردم. البته شما فقط همین درس رو دریافت کردین.
      ۲- با همین نسخه ای که نصب کردید سعی کنید خطای ناسازگاری تک تک کتابخونه ها مثل موردی که بالا گفتم رو با گوگل کردن پیدا حل کنید. یعنی مثلا اگه می خواین کیوی ۲ رو پیش برید ناسازگاری ها رو دستی حل کنید.

  3. mhmdjwads804 (خریدار محصول)

    سلام شما توی این آموزش از ابونتو استفاده کردید آیا روی کالی لینوکس هم امکان پذیره؟

    • مصطفی آصفی

      سلام وقت بخیر. روی کالی امتحان نکردم ولی نباید مشکلی داشته باشه چون کرنل یکی هست. با این حال مطمئن نمی تونم بگم.

  4. رضا محمدی

    سلام دوباره و عرض خسته نباشد. طبق گفته شما استاد مشکل از vpn بود حل شد ولی الان یک اروری میده که من نمیتونم راه حلش رو ‍پیدا کنم.
    ERROR: /home/reza/Desktop/apk/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/Rmapp/gradlew failed!
    WARNING: Received a –sdk argument, but this argument is deprecated and does nothing.
    No setup.py/pyproject.toml used, copying full private data into .apk.
    Applying Java source code patches…
    Applying patch: src/patches/SDLActivity.java.patch
    Warning: failed to apply patch (exit code 1), assuming it is already applied: src/patches/SDLActivity.java.patch
    # Command failed: /usr/bin/python3 -m pythonforandroid.toolchain apk –bootstrap sdl2 –dist_name Rmapp –name Rm –version 0.1 –package org.test.rmapp –minsdk 21 –ndk-api 21 –private /home/reza/Desktop/apk/.buildozer/android/app –android-entrypoint org.kivy.android.PythonActivity –android-apptheme @android:style/Theme.NoTitleBar –orientation portrait –window –copy-libs –arch arm64-v8a –arch armeabi-v7a –color=always –storage-dir=”/home/reza/Desktop/apk/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a” –ndk-api=21 –ignore-setup-py –debug
    # ENVIRONMENT:
    # SHELL = ‘/bin/bash’
    # SESSION_MANAGER = ‘local/reza-HP-Notebook:@/tmp/.ICE-unix/1813,unix/reza-HP-Notebook:/tmp/.ICE-unix/1813’
    # QT_ACCESSIBILITY = ‘1’
    # COLORTERM = ‘truecolor’
    # XDG_CONFIG_DIRS = ‘/etc/xdg/xdg-ubuntu:/etc/xdg’
    # XDG_MENU_PREFIX = ‘gnome-‘
    # GNOME_DESKTOP_SESSION_ID = ‘this-is-deprecated’
    # LC_ADDRESS = ‘az_IR’
    # GNOME_SHELL_SESSION_MODE = ‘ubuntu’
    # LC_NAME = ‘az_IR’
    # SSH_AUTH_SOCK = ‘/run/user/1000/keyring/ssh’
    # XMODIFIERS = ‘@im=ibus’
    # DESKTOP_SESSION = ‘ubuntu’
    # LC_MONETARY = ‘az_IR’
    # SSH_AGENT_PID = ‘1776’
    # GTK_MODULES = ‘gail:atk-bridge’
    # DBUS_STARTER_BUS_TYPE = ‘session’
    # PWD = ‘/home/reza/Desktop/apk’
    # LOGNAME = ‘reza’
    # XDG_SESSION_DESKTOP = ‘ubuntu’
    # XDG_SESSION_TYPE = ‘x11’
    # GPG_AGENT_INFO = ‘/run/user/1000/gnupg/S.gpg-agent:0:1’
    # XAUTHORITY = ‘/run/user/1000/gdm/Xauthority’
    # WINDOWPATH = ‘2’
    # HOME = ‘/home/reza’
    # USERNAME = ‘reza’
    # IM_CONFIG_PHASE = ‘1’
    # LC_PAPER = ‘az_IR’
    # LANG = ‘en_US.UTF-8’
    # LS_COLORS = ‘rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:’
    # XDG_CURRENT_DESKTOP = ‘ubuntu:GNOME’
    # VTE_VERSION = ‘6003’
    # GNOME_TERMINAL_SCREEN = ‘/org/gnome/Terminal/screen/0c52830a_780c_4743_98f8_7fe2d232ca9e’
    # INVOCATION_ID = ‘e9e3b167956b4749b155d4abfcec6cd2’
    # MANAGERPID = ‘1589’
    # LESSCLOSE = ‘/usr/bin/lesspipe %s %s’
    # XDG_SESSION_CLASS = ‘user’
    # TERM = ‘xterm-256color’
    # LC_IDENTIFICATION = ‘az_IR’
    # LESSOPEN = ‘| /usr/bin/lesspipe %s’
    # USER = ‘reza’
    # GNOME_TERMINAL_SERVICE = ‘:1.105’
    # DISPLAY = ‘:0’
    # SHLVL = ‘1’
    # LC_TELEPHONE = ‘az_IR’
    # QT_IM_MODULE = ‘ibus’
    # LC_MEASUREMENT = ‘az_IR’
    # DBUS_STARTER_ADDRESS = ‘unix:path=/run/user/1000/bus,guid=6887fc37d0c25f95840741d8629c5bb3’
    # XDG_RUNTIME_DIR = ‘/run/user/1000’
    # LC_TIME = ‘az_IR’
    # JOURNAL_STREAM = ‘8:44529’
    # XDG_DATA_DIRS = ‘/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop’
    # PATH = ‘/home/reza/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/reza/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin’
    # GDMSESSION = ‘ubuntu’
    # DBUS_SESSION_BUS_ADDRESS = ‘unix:path=/run/user/1000/bus,guid=6887fc37d0c25f95840741d8629c5bb3’
    # LC_NUMERIC = ‘az_IR’
    # _ = ‘/home/reza/.local/bin/buildozer’
    # PACKAGES_PATH = ‘/home/reza/.buildozer/android/packages’
    # ANDROIDSDK = ‘/home/reza/.buildozer/android/platform/android-sdk’
    # ANDROIDNDK = ‘/home/reza/.buildozer/android/platform/android-ndk-r19c’
    # ANDROIDAPI = ’27’
    # ANDROIDMINAPI = ’21’
    #
    # Buildozer failed to execute the last command
    # The error might be hidden in the log above this error
    # Please read the full log, and search for it before
    # raising an issue with buildozer itself.
    # In case of a bug report, please add a full log with log_level = 2

    • مصطفی آصفی

      سلام مجدد. بعضی وقتا مثل این خطایی که دارید منشا کامل مشخص نیست. توصیه می کنم عادت کنید اون بخشی از کدتون که با failed همراهه گوگل کنید و موارد مشابه رو بررسی کنید. الان این خطای پچ شما ممکنه از چند چیز باشه. شاید به دلیل دسترسی باشه و کارتون رو با sudo انجام دادین. شایدم خیلی ساده برای اسپلش اپ به جای jpg باید png استفاده کنید. بهترین کار اینه که برای مثال تو این مورد این عبارت رو از دل لاگتون گوگل کنید:
      Applying patch: src/patches/SDLActivity.java.patch +‌ kivy

  5. رضا محمدی (خریدار محصول)

    سلام من تازه شروع کردم و از دوره شما آقای اصفی عزیز استفاده میکنم و خیلی خوب هست ممنون.
    من مشکلی در بیلدوزر دارم و ارور # sdkmanager path “/home/reza/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager” does not exist, sdkmanager is notinstalled
    میده جستوجو کردم فایل sdk یک فایل فشرده بود که آدرسش رو گذاشته بودن ولی متاسفانه سایت کلا ارور 404 میده. در مراحل نصب بیلدوزر هم vpn وصل بوده و حتی چند بار اقدام به نصب کردم که متاسفانه هر مرحله به این مشکل برخوردکرده ام.

    • مصطفی آصفی

      سلام به شما. با فرض این که همه مراحل رو مطابق من پیش رفتین مشکل همون از دریافت منیجر هست. پوشه sdk manager رو حذف کنید و دوباره مطابق آموزش و البته با vpn قوی به صورت آنلاین دریافت کنید. دقت کنید شما ممکنه وی پی انی استفاده کنید که همه جا رد میشه و مثلا تلگرام رو هم بالا میاره اما سرور گوگل اجازه عبور نمیده. من تو این لحظه که این رو می نویسم از تیکنت استفاده می کنم و اونم همه سرویس هاش جواب نمیده. گاهی کریو با سرور فرانسه جواب میده.

  6. سعید (خریدار محصول)

    با سلامو وتشکر از آموزش خوبتان. این ایراد به چه دلیل است؟البته یک خطوط قرمز عم بعدش نوشته میشه
    Warning: Observed package id ‘cmdline-tools;5.0’ in inconsistent location ‘/home/saeidmot/.buildozer/android/platform/android-sdk/tools’ (Expected ‘/home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0’)
    Warning: Observed package id ‘cmdline-tools;5.0’ in inconsistent location ‘/home/saeidmot/.buildozer/android/platform/android-sdk/tools’ (Expected ‘/home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0’)
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-4.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-3.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-2.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-1.xml
    Warning: Failed to download any source lists!
    Warning: IO exception while downloading manifest
    Warning: IO exception while downloading manifestch remote repository…
    Warning: Still waiting for package manifests to be fetched remotely.
    Warning: Failed to find package ‘platform-tools’mputing updates…

    • مصطفی آصفی

      سلام به شما. خطا داره می گه cmdline-tools رو تو مسیر /home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0 انتظار دارم ولی نیست. به احتمال زیاد Android SDK به درستی نصب نشده یا باید از نسخه متفاوتی از sdk tools در تنظیمات بیلدوزر استفاده کنید چون اون ابزار و مسیربندی مطابق این سند (+) از رده خارج شده باشه. گوگل کنید.

  7. طاها (خریدار محصول)

    سلام استاد.تولید پکیج اندروید با buildozer منسوخ شده و دیگه حتی توی داکیومنشن خود کیوی هم نیست.الان تنها راه پکیج کردن استفاده از p4a یا kivy luncher هستش.اگر ممکنه آموزش استفاده از p4a رو قرار بدید.
    ممنون از زحمات شما.

    • مصطفی آصفی

      سلام به شما. من این رو بررسی کردم. در این لحظه همچنان در داکیومنت پکیج کردن با بیلدوزر توصیه شده و حذف نشده.
      پکیج کردن با بیلدوزر (+)
      ضمنا دقت کنید بیلدوزر در واقع همون p4a هست منتها برخی گام ها رو در خودش خودکارسازی کرده.

      پی‌نوشت: با وجود توضیح بالا لطفا اگه لینک مستندی از خود وبسایت کیوی دارید که در اون در مورد منسوخ شدن بیلدوزر و یا بسته دیگری توضیح داده شده حتما برای بنده اینجا بفرستید.

  8. mo.javad71@gmail.com (خریدار محصول)

    سلام وقت بخیر
    من وقتی مرحله دیباگ رو انجام میدم این خطا رو دریافت میکنم

    # sdkmanager path “/home/mojavad71/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager” does not exist, sdkmanager is notinstalled

    • مصطفی آصفی

      سلام به شما. پیام دادره میگه sdk manager اندروید برای شما به درستی نصب نشده. احتمالا در مراحل نصب VPN قطع شده. باید مراحل رو از نو طی کنید. از VPN مناسب استفاده کنید که بتونید موارد مورد نیاز اندروید رو کامل از سرورهای گوگل بگیرید.

  9. هادی

    آموزش شما خیلی خوبه.
    ولی من در همون ابتدا یعنی نصب kivy موندم و به یک ارروری که اصلا نمیفهمم بر میخوره نمیدونم از چی هست.
    اگه میشه کمکم کنید ممنون

    • مصطفی آصفی

      سلام به شما. سلامت باشید. اگر متن خطا رو می فرستادید بهتر بود. ولی به احتمال زیاد مرتبط با ناسازگاری کیوی با پایتون 3.8 هست. از پایتون 3.7 در محیط مجازی (venv) استفاده کنید.

  10. andersoneliot69@gmail.com (خریدار محصول)

    با سلام
    من موقع بیلد کردن پروژه ارورlog value 2 گرفتم. خیلی هم در اینترنت جست و جو کردم اما نتیجه ای نگرفتم لطفاً کمک کنید ممنون.

    • مصطفی آصفی

      سلام به شما. این چیزی که شما گزارش کردید در واقع فقط بخش آخر خطا هست که احتمالا توصیه می کنه سطح لاگ رو روی 2 قرار بدین برای جزئیات. برای اظهار نظر خوب بایستی کل خطا یا بخش اصلی اون رو اعلام کنید که بتونم راهنمایی کنم. اون نقطه که خطا پیدا شده.

  11. saraeshraghi.sa

    با سلام
    آموزش این دوره روی چه سیستم عامل و با کدام نرم افزار برنامه نویسی هست؟

    • مصطفی آصفی

      سلام به شما، بسته آموزش کیوی روی ویندوز ضبط شده اما تولید خروجی اندروید در کیوی در حال حاضر احتیاج به یک لینوکس یا لینوکس مجازی داره. به همین دلیل در درس دوم نحوه نصب کیوی روی لینوکس تازه نصب شده توضیح داده شد و در درس‌های تولید خروجی اندروید هم از این سیستم استفاده شده.

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

11 دیدگاه برای آموزش برنامه نویسی اندروید با پایتون (تولید فایل APK از پروژه کیوی)

  1. yosef.podine (خریدار محصول)

    سلام مجدد
    ممنون از راهنماییتون
    فقط یک سوال دیگه
    الان ورژن پایتون ۳.۱۱.۶ هست که روی خود اوبونتو نصب بود
    ورژن کیوی ۲.۳.۰ هست
    ورژن کیوی‌ام‌دی ۱.۲.۰ هست

    که البته برای کیوی‌ام‌دی میگه که نسخه ۲ اومده، وقتی نصبش کردم دیگه برنامه ای که نوشتم کار نمیکنه ، چون دیگه دکمه ها و چیزهایی که استفاده کردم در ورژن ۲ از کیوی‌ام‌دی اسم متفاوتی دارند و ایمپورتشون عوض شده.

    دوباره به ورژن قبلی برگشتم
    حتما نیاز هست که آخرین ورژن از کیوی‌ام‌دی رو داشته باشم؟ چون اون ویژگی و ظاهری که برای برنامه می‌خواد با همین ورژن ۱.۲.۰ هم بهش رسیدم

    الان باید برای نصب بیلدوزر با توجه به ورژن هایی که از پایتون و کیوی و کیوی‌ام‌دی دارم بیام و پیشنیازهای بیلدوزر و بعد خودش رو نصب کنم؟

    • مصطفی آصفی

      سلام وقت بخیر. به نظرم تا نیاز نشده به نسخه بالاتر ارتقا ندین. بهتره یادداشت های انتشار (release note) نسخه ۲ رو بخونید و تو ذهن داشته باشین و وقتی استفاده کنید که یه ویژگی نسخه جدید واقعا تو کارتون حیاتیه.

      پی‌نوشت: اینو تو همه کتابخانونه های پایتونی توصیه می کنم.

  2. yosef.podine (خریدار محصول)

    سلام
    در اولین مرحله قبل نصب بیلدوزر به مشکل خوردم
    من اوبونتو ورژن 23.10 توسط ویرچوال باکس نصب کردم
    طبق آموزش مربوط به نصب کیوی روی لینوکس کیوی و pip و پیش نیازهایی که اونجا گفته شد رو نصب کردم
    البته برای نصب pip و kivy در انتهای دستور نصب –break-system-packages استفاده کردم.
    مثلا :
    sudo pip3 install kivy –break-system-packages
    چون در غیر این صورت نصب انجام نمی شد.

    حالا برای نصب پیش نیازها این ارورها و پیام ها میاد و چیزی نصب نمیشه
    دستور و پیام بعدش رو با هم می ذارم.

    yosef@yosef-pc:~/Desktop$ sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev zlib1g:i386 libncurses5-dev libltdl-dev libffi-dev libssl-dev autotools-dev libncursesw5-dev libtinfo5 cmake
    [sudo] password for yosef:
    Reading package lists… Done
    Building dependency tree… Done
    Reading state information… Done
    Note, selecting ‘libncurses-dev’ instead of ‘libncurses5-dev’
    Note, selecting ‘libncurses-dev’ instead of ‘libncursesw5-dev’
    Package libpangox-1.0-0:i386 is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Unable to locate package libncurses5:i386
    E: Package ‘libpangox-1.0-0:i386’ has no installation candidate
    E: Unable to locate package libidn11:i386
    E: Unable to locate package python2.7
    E: Couldn’t find any package by glob ‘python2.7’
    E: Couldn’t find any package by regex ‘python2.7’
    E: Unable to locate package python2.7-dev
    E: Couldn’t find any package by glob ‘python2.7-dev’
    E: Couldn’t find any package by regex ‘python2.7-dev’
    E: Unable to locate package libtinfo5

    • مصطفی آصفی

      سلام وقت بخیر. احتمالا مشکلتون ناسازگاری نسخه ها ست. برای مثال تو این خطر
      Note, selecting ‘libncurses-dev’ instead of ‘libncurses5-dev’
      میگه به جایlibncurses5-dev دارم libncurses-dev رو استفاده می کنم که پایین تر اولین خط خطا هم مربوط به همونه. کتابخونه های پایتون همیشه در معرض مشکلات نسخه وابستگی هاشون هستن. کیوی از همه بدتر چون خیلی کتابخونه های ویژه ای رو کنار هم چیده. شما باید نصب کیوی و بیلدوزر رو خیلی دقیق انجام بدین. حالا یا با مطالعه مستندات یا با تقلید دقیق نسخه ها از روی آموزش. من اینجا کیوی ۱.۱۱.۱ رو نصب کردم اما الان کیوی ۲ اومده. پس شما با دستور pip install kivy بدون تعیین شماره نسخه خودبه خود نسخه ۲ رو می گیرید و مسیرتون جدا میشه. دو کار می تونید بکنید.
      ۱- نسخه ها رو مشابه آموزش پیش برید. مثلا می تونید با راهنمای این نشانی (+) که درس نصب کیوی هم بر اساس اون پیش رفتیم نسخه مشابه برای کیوی و بعدتر برای بیلدوزر یپش برید. تو این مخزن گیت هاب (+) محیط مجازی رو هم آپلود کردم. تو این مخزن هم فایل requirements.txt رو آپلود کردم. البته شما فقط همین درس رو دریافت کردین.
      ۲- با همین نسخه ای که نصب کردید سعی کنید خطای ناسازگاری تک تک کتابخونه ها مثل موردی که بالا گفتم رو با گوگل کردن پیدا حل کنید. یعنی مثلا اگه می خواین کیوی ۲ رو پیش برید ناسازگاری ها رو دستی حل کنید.

  3. mhmdjwads804 (خریدار محصول)

    سلام شما توی این آموزش از ابونتو استفاده کردید آیا روی کالی لینوکس هم امکان پذیره؟

    • مصطفی آصفی

      سلام وقت بخیر. روی کالی امتحان نکردم ولی نباید مشکلی داشته باشه چون کرنل یکی هست. با این حال مطمئن نمی تونم بگم.

  4. رضا محمدی

    سلام دوباره و عرض خسته نباشد. طبق گفته شما استاد مشکل از vpn بود حل شد ولی الان یک اروری میده که من نمیتونم راه حلش رو ‍پیدا کنم.
    ERROR: /home/reza/Desktop/apk/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/dists/Rmapp/gradlew failed!
    WARNING: Received a –sdk argument, but this argument is deprecated and does nothing.
    No setup.py/pyproject.toml used, copying full private data into .apk.
    Applying Java source code patches…
    Applying patch: src/patches/SDLActivity.java.patch
    Warning: failed to apply patch (exit code 1), assuming it is already applied: src/patches/SDLActivity.java.patch
    # Command failed: /usr/bin/python3 -m pythonforandroid.toolchain apk –bootstrap sdl2 –dist_name Rmapp –name Rm –version 0.1 –package org.test.rmapp –minsdk 21 –ndk-api 21 –private /home/reza/Desktop/apk/.buildozer/android/app –android-entrypoint org.kivy.android.PythonActivity –android-apptheme @android:style/Theme.NoTitleBar –orientation portrait –window –copy-libs –arch arm64-v8a –arch armeabi-v7a –color=always –storage-dir=”/home/reza/Desktop/apk/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a” –ndk-api=21 –ignore-setup-py –debug
    # ENVIRONMENT:
    # SHELL = ‘/bin/bash’
    # SESSION_MANAGER = ‘local/reza-HP-Notebook:@/tmp/.ICE-unix/1813,unix/reza-HP-Notebook:/tmp/.ICE-unix/1813’
    # QT_ACCESSIBILITY = ‘1’
    # COLORTERM = ‘truecolor’
    # XDG_CONFIG_DIRS = ‘/etc/xdg/xdg-ubuntu:/etc/xdg’
    # XDG_MENU_PREFIX = ‘gnome-‘
    # GNOME_DESKTOP_SESSION_ID = ‘this-is-deprecated’
    # LC_ADDRESS = ‘az_IR’
    # GNOME_SHELL_SESSION_MODE = ‘ubuntu’
    # LC_NAME = ‘az_IR’
    # SSH_AUTH_SOCK = ‘/run/user/1000/keyring/ssh’
    # XMODIFIERS = ‘@im=ibus’
    # DESKTOP_SESSION = ‘ubuntu’
    # LC_MONETARY = ‘az_IR’
    # SSH_AGENT_PID = ‘1776’
    # GTK_MODULES = ‘gail:atk-bridge’
    # DBUS_STARTER_BUS_TYPE = ‘session’
    # PWD = ‘/home/reza/Desktop/apk’
    # LOGNAME = ‘reza’
    # XDG_SESSION_DESKTOP = ‘ubuntu’
    # XDG_SESSION_TYPE = ‘x11’
    # GPG_AGENT_INFO = ‘/run/user/1000/gnupg/S.gpg-agent:0:1’
    # XAUTHORITY = ‘/run/user/1000/gdm/Xauthority’
    # WINDOWPATH = ‘2’
    # HOME = ‘/home/reza’
    # USERNAME = ‘reza’
    # IM_CONFIG_PHASE = ‘1’
    # LC_PAPER = ‘az_IR’
    # LANG = ‘en_US.UTF-8’
    # LS_COLORS = ‘rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:’
    # XDG_CURRENT_DESKTOP = ‘ubuntu:GNOME’
    # VTE_VERSION = ‘6003’
    # GNOME_TERMINAL_SCREEN = ‘/org/gnome/Terminal/screen/0c52830a_780c_4743_98f8_7fe2d232ca9e’
    # INVOCATION_ID = ‘e9e3b167956b4749b155d4abfcec6cd2’
    # MANAGERPID = ‘1589’
    # LESSCLOSE = ‘/usr/bin/lesspipe %s %s’
    # XDG_SESSION_CLASS = ‘user’
    # TERM = ‘xterm-256color’
    # LC_IDENTIFICATION = ‘az_IR’
    # LESSOPEN = ‘| /usr/bin/lesspipe %s’
    # USER = ‘reza’
    # GNOME_TERMINAL_SERVICE = ‘:1.105’
    # DISPLAY = ‘:0’
    # SHLVL = ‘1’
    # LC_TELEPHONE = ‘az_IR’
    # QT_IM_MODULE = ‘ibus’
    # LC_MEASUREMENT = ‘az_IR’
    # DBUS_STARTER_ADDRESS = ‘unix:path=/run/user/1000/bus,guid=6887fc37d0c25f95840741d8629c5bb3’
    # XDG_RUNTIME_DIR = ‘/run/user/1000’
    # LC_TIME = ‘az_IR’
    # JOURNAL_STREAM = ‘8:44529’
    # XDG_DATA_DIRS = ‘/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop’
    # PATH = ‘/home/reza/.buildozer/android/platform/apache-ant-1.9.4/bin:/home/reza/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin’
    # GDMSESSION = ‘ubuntu’
    # DBUS_SESSION_BUS_ADDRESS = ‘unix:path=/run/user/1000/bus,guid=6887fc37d0c25f95840741d8629c5bb3’
    # LC_NUMERIC = ‘az_IR’
    # _ = ‘/home/reza/.local/bin/buildozer’
    # PACKAGES_PATH = ‘/home/reza/.buildozer/android/packages’
    # ANDROIDSDK = ‘/home/reza/.buildozer/android/platform/android-sdk’
    # ANDROIDNDK = ‘/home/reza/.buildozer/android/platform/android-ndk-r19c’
    # ANDROIDAPI = ’27’
    # ANDROIDMINAPI = ’21’
    #
    # Buildozer failed to execute the last command
    # The error might be hidden in the log above this error
    # Please read the full log, and search for it before
    # raising an issue with buildozer itself.
    # In case of a bug report, please add a full log with log_level = 2

    • مصطفی آصفی

      سلام مجدد. بعضی وقتا مثل این خطایی که دارید منشا کامل مشخص نیست. توصیه می کنم عادت کنید اون بخشی از کدتون که با failed همراهه گوگل کنید و موارد مشابه رو بررسی کنید. الان این خطای پچ شما ممکنه از چند چیز باشه. شاید به دلیل دسترسی باشه و کارتون رو با sudo انجام دادین. شایدم خیلی ساده برای اسپلش اپ به جای jpg باید png استفاده کنید. بهترین کار اینه که برای مثال تو این مورد این عبارت رو از دل لاگتون گوگل کنید:
      Applying patch: src/patches/SDLActivity.java.patch +‌ kivy

  5. رضا محمدی (خریدار محصول)

    سلام من تازه شروع کردم و از دوره شما آقای اصفی عزیز استفاده میکنم و خیلی خوب هست ممنون.
    من مشکلی در بیلدوزر دارم و ارور # sdkmanager path “/home/reza/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager” does not exist, sdkmanager is notinstalled
    میده جستوجو کردم فایل sdk یک فایل فشرده بود که آدرسش رو گذاشته بودن ولی متاسفانه سایت کلا ارور 404 میده. در مراحل نصب بیلدوزر هم vpn وصل بوده و حتی چند بار اقدام به نصب کردم که متاسفانه هر مرحله به این مشکل برخوردکرده ام.

    • مصطفی آصفی

      سلام به شما. با فرض این که همه مراحل رو مطابق من پیش رفتین مشکل همون از دریافت منیجر هست. پوشه sdk manager رو حذف کنید و دوباره مطابق آموزش و البته با vpn قوی به صورت آنلاین دریافت کنید. دقت کنید شما ممکنه وی پی انی استفاده کنید که همه جا رد میشه و مثلا تلگرام رو هم بالا میاره اما سرور گوگل اجازه عبور نمیده. من تو این لحظه که این رو می نویسم از تیکنت استفاده می کنم و اونم همه سرویس هاش جواب نمیده. گاهی کریو با سرور فرانسه جواب میده.

  6. سعید (خریدار محصول)

    با سلامو وتشکر از آموزش خوبتان. این ایراد به چه دلیل است؟البته یک خطوط قرمز عم بعدش نوشته میشه
    Warning: Observed package id ‘cmdline-tools;5.0’ in inconsistent location ‘/home/saeidmot/.buildozer/android/platform/android-sdk/tools’ (Expected ‘/home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0’)
    Warning: Observed package id ‘cmdline-tools;5.0’ in inconsistent location ‘/home/saeidmot/.buildozer/android/platform/android-sdk/tools’ (Expected ‘/home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0’)
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-4.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-3.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-2.xml
    Warning: Failed to connect to host: https://dl.google.com/android/repository/addons_list-1.xml
    Warning: Failed to download any source lists!
    Warning: IO exception while downloading manifest
    Warning: IO exception while downloading manifestch remote repository…
    Warning: Still waiting for package manifests to be fetched remotely.
    Warning: Failed to find package ‘platform-tools’mputing updates…

    • مصطفی آصفی

      سلام به شما. خطا داره می گه cmdline-tools رو تو مسیر /home/saeidmot/.buildozer/android/platform/android-sdk/cmdline-tools/5.0 انتظار دارم ولی نیست. به احتمال زیاد Android SDK به درستی نصب نشده یا باید از نسخه متفاوتی از sdk tools در تنظیمات بیلدوزر استفاده کنید چون اون ابزار و مسیربندی مطابق این سند (+) از رده خارج شده باشه. گوگل کنید.

  7. طاها (خریدار محصول)

    سلام استاد.تولید پکیج اندروید با buildozer منسوخ شده و دیگه حتی توی داکیومنشن خود کیوی هم نیست.الان تنها راه پکیج کردن استفاده از p4a یا kivy luncher هستش.اگر ممکنه آموزش استفاده از p4a رو قرار بدید.
    ممنون از زحمات شما.

    • مصطفی آصفی

      سلام به شما. من این رو بررسی کردم. در این لحظه همچنان در داکیومنت پکیج کردن با بیلدوزر توصیه شده و حذف نشده.
      پکیج کردن با بیلدوزر (+)
      ضمنا دقت کنید بیلدوزر در واقع همون p4a هست منتها برخی گام ها رو در خودش خودکارسازی کرده.

      پی‌نوشت: با وجود توضیح بالا لطفا اگه لینک مستندی از خود وبسایت کیوی دارید که در اون در مورد منسوخ شدن بیلدوزر و یا بسته دیگری توضیح داده شده حتما برای بنده اینجا بفرستید.

  8. mo.javad71@gmail.com (خریدار محصول)

    سلام وقت بخیر
    من وقتی مرحله دیباگ رو انجام میدم این خطا رو دریافت میکنم

    # sdkmanager path “/home/mojavad71/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager” does not exist, sdkmanager is notinstalled

    • مصطفی آصفی

      سلام به شما. پیام دادره میگه sdk manager اندروید برای شما به درستی نصب نشده. احتمالا در مراحل نصب VPN قطع شده. باید مراحل رو از نو طی کنید. از VPN مناسب استفاده کنید که بتونید موارد مورد نیاز اندروید رو کامل از سرورهای گوگل بگیرید.

  9. هادی

    آموزش شما خیلی خوبه.
    ولی من در همون ابتدا یعنی نصب kivy موندم و به یک ارروری که اصلا نمیفهمم بر میخوره نمیدونم از چی هست.
    اگه میشه کمکم کنید ممنون

    • مصطفی آصفی

      سلام به شما. سلامت باشید. اگر متن خطا رو می فرستادید بهتر بود. ولی به احتمال زیاد مرتبط با ناسازگاری کیوی با پایتون 3.8 هست. از پایتون 3.7 در محیط مجازی (venv) استفاده کنید.

  10. andersoneliot69@gmail.com (خریدار محصول)

    با سلام
    من موقع بیلد کردن پروژه ارورlog value 2 گرفتم. خیلی هم در اینترنت جست و جو کردم اما نتیجه ای نگرفتم لطفاً کمک کنید ممنون.

    • مصطفی آصفی

      سلام به شما. این چیزی که شما گزارش کردید در واقع فقط بخش آخر خطا هست که احتمالا توصیه می کنه سطح لاگ رو روی 2 قرار بدین برای جزئیات. برای اظهار نظر خوب بایستی کل خطا یا بخش اصلی اون رو اعلام کنید که بتونم راهنمایی کنم. اون نقطه که خطا پیدا شده.

  11. saraeshraghi.sa

    با سلام
    آموزش این دوره روی چه سیستم عامل و با کدام نرم افزار برنامه نویسی هست؟

    • مصطفی آصفی

      سلام به شما، بسته آموزش کیوی روی ویندوز ضبط شده اما تولید خروجی اندروید در کیوی در حال حاضر احتیاج به یک لینوکس یا لینوکس مجازی داره. به همین دلیل در درس دوم نحوه نصب کیوی روی لینوکس تازه نصب شده توضیح داده شد و در درس‌های تولید خروجی اندروید هم از این سیستم استفاده شده.

دیدگاه خود را بنویسید