Це відео не доступне.
Перепрошуємо.
Convert Python to Android with WINDOWS & LINUX + Fix Common Bugs
Вставка
- Опубліковано 18 сер 2024
- In this tutorial, I will show you how to convert your Python projects into Android applications - USING WINDOWS! 😎
We will Create a Windows Subsystem for Linux (WSL), Learn about Android's Debug Bridge (adb) and use Buildozer to compile our .py files into .apk.
By the way, I'm extra annoying in this video so my apologies in advance! 🤪 I've detected a few crazy cat lady moments while editing... I don't know why I was shouting at the keyboard 😅
ANYHOW... For this project, we will first need to learn about 🥝Kivy or KivyMD🥝, which are Python GUI libraries that are responsible for the interface of the app.
🛑 If you're not yet familiar with Kivy or KivyMD - check out any of my quick tutorials:
⭐ Mobile App with KivyMD ⭐
• Mobile App with KivyMD...
⭐ Expand Mobile App with KivyMD ⭐
• Expand KivyMD GUI App ...
⭐ Simple App with Kivy ⭐
• Simple Python App with...
⭐ EXTRA: Python Classes and OOP ⭐
• Python Classes and Obj...
(will help with understanding the App Class)
*********************************************
⏰ Time Stamps: ⏰
00:00 - intro
00:30 - Install Windows Subsystem for Linux (WSL)
05:14 - Install Buildozer and Dependencies
06:52 - Android Debug Bridge (adb)
09:53 - Developer Options on Android Device
10:38 - buildozer.spec requirements
12:06 - Start Windows adb server
12:44 - Operation not permitted FIX
13:34 - Convert Python to Android
15:45 - Icons not displayed on Android FIX
18:05 - Thanks for watching! see you soon! 😊
*********************************************
Special thank you to Delphi Niki and WinTush
for sharing your code with me on Github! 😁
*********************************************
My Github:
github.com/Mar...
Windows Subsystem Docs:
docs.microsoft...
Android Platform Tools:
developer.andr...
Buildozer Documentation:
buildozer.read...
Icons Not Displaying Issue on Github:
github.com/kiv...
I always get the error message: "Unknown command/target android" after the command "buildozer -v android debug". I followed your tutorial step by step so far. I only used a different python-file and some picture which were all in the folder- Do you have an idea what the problem could be?
Good explanations btw. ;)
Hi Tim! 😃
Are you using Windows 7 by any chance?
Sorry, I haven't encountered this error earlier but I've noticed somebody on stack overflow did and they were using Windows 7:
stackoverflow.com/questions/60077141/building-an-android-app-with-kivybuildozer/70162831#70162831
It seems that something is wrong with the Buildozer installation but I couldn't find a proper solution to it online... everyone just replies with "you can't work with Buildozer on Windows" and refers to Google Colab (which never even seemed to work for me).
I don't think it's the problem here, but does your version of Kivy and KivyMD matches mine? you can find out the exact version with "conda list" or "pip list" and make sure you update it in the requirements in your buildozer.spec file. (it's a long shot, it's probably unrelated but it's worth a try)
If everything matches but the error repeats, do you mind loading your code to Github so I can take a closer look?
Thanks! 😊
@@PythonSimplified Thanks a lot! I found a way now. I still don't now what the problem is but here is the short story:
I used to convert my python apps via Colab to APKs for my android phone. For some reason it stopped working and that is why I looked up your video. Your way doesn't work for my setup for some reason (maybe I did something wrong idk). But you gave me that idea to check the version of my kivy application. Now that I have updated my kivy, the old way works again! So thanks again for the quick reply and for your video! A lot! Because I spend 3 days on that problem by now and it didn't cross my mind to check if my kivy version was old (yeah I guess I am dumb lol). Thanks!
@@timmaassen9234 wow!! I can't believe it worked!! I didn't think it was the problem but I'm super happy it helped!!! 😃😃😃
Also happy to hear that the Colab way works for you! Do you mind sharing which tutorial you followed to get it done? It might help other folks who stumble upon this video and have issues with the WSL way 😊
And you're most certainly not dumb!!! It wasn't an obvious issue!!! It's just a matter of troubleshooting! 😉
@@PythonSimplified Unfortunately, I cannot remember the exact tutorial, but I can share the code:
!pip install buildozer
_____
!pip install cython==0.29.19 # might be updated when newer version is released
____
!lsb_release -a
____
!sudo apt-get install -y \
python3-pip \
build-essential \
git \
python3 \
python3-dev \
ffmpeg \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libportmidi-dev \
libswscale-dev \
libavformat-dev \
libavcodec-dev \
zlib1g-dev
____
!sudo apt-get install -y \
libgstreamer1.0 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good
____
!sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev libffi6
____
!sudo apt-get install libffi-dev
____
!buildozer init
____
!buildozer -v android debug
This code will create a bin folder insider Colab containing the APK file. You can dowload it to your computer and from there load it onto your phone. After that you just need an APK installer. Voila!
(Do not forget to make sure that both the kivy and kivymd versions fit to the one from your app!!)
P.S.: I cannot remember where the code is from. I remember that it is from a tutorial from some youtuber. Please comment it if you know it so I can give a link and credit!!!
18:12 The sound of Victory.
Thank you for your wonderful tutorial.
hahahaha YES! I struggled so much with debugging everything that a Hallelujah praise was a must! 😁
You're absolutely welcome and I hope it helps everybody with their conversion! 😊
i hate when the links does not match with what you are showing
Hi there! I converted a .py file to an .apk file using Google Colab. Once the file was created, I installed it on my Android device. However, when I opened the app, it immediately crashed and closed. I have no clue what's going on, and I've tried fixing it in many ways, but nothing seems to work. Can you suggest any solutions? Thanks!
If your app is crashed after the loading screen, you can try following: in buildozer spec file after the string "source.include_exts =" type all extentions of files of your project, including database file, font, picture... everything.
As always, your pace and the way of explanation of the tutorials, are excellent for beginners like me to follow along. I like all your videos.
Thank you so much for the lovely feedback Kabilan! 😁 Super glad to have you onboard! 😊
UA-cam recommended me this video and I don't even know how to make a web page, but the tutorial is so well done that now I wanna learn Python
Your channel is amazing, not just because the content you teaches, but by your crystal clear explanation too.
My mouth are openned...
How you turnned the Pandora box in a golden cup in the finish rainbow!!!!
Loved this video and also you english continues perfect, clear and good to understood.
Congratulations more on time!!!
Big hug from Brazil!!!
Thank you so much for the incredible comment Luis!
So happy you liked this tutorial, I hope it helps with your conversion! 😁
where can I get my older version of adb like you had on the B2D folder? I don't have that from my python project.
Did you manage to figure out how to get adb for your project, I have the same question at the moment? Thanks!
I love your way using your hands for teaching purpose ❤
It helps me to stay in rhythm! hahahaha 🤣
plus, I grew up in the Middle East so I can't really speak without hand gestures... I'm waving them all over the place even in person 🤪
@@PythonSimplified My wife does that ... despite my incessent nagging.
I've never seen someone spell Mariya like that! How cool. Also sweet tutorial!
Thank you Nick! It's the Ukrainians who decided to spell it that way on my passport... I'm actually very lucky they didn't go for Marija 🤣🤣🤣
Followed every step and it worked perfectly. Thank you so much for all these guides, they help a lot!
Yeeey!! Thank you so much, Francisco!! I'm super happy I could help!!! 😀
I remember I spent 3 days on trying to figure out how this conversion works, and when I did figure it out - I couldn't remember the exact steps that led me there so I had to start all over again 😅😅😅 hahahahahah
Thank you so much for your support, I really appreciate it! 😊
thanks you for your tutorial but i don't know how to get the adb 1.0.39 for windows! can you help me please?!
Hi, Your Tutorial really helped me. But there is single error i.e the app installed on my phone go toloading mode and quickly stops working. The app closes itself
The tutorial dosent work for me even when Mariya tried to debug the buildozer -v android debug by the sudo mount command thing i followed the exact same process but that didnt work!
After entering "sudo mount -t... metadata" I get the same error, I would appreciate your help, thanks a lot.
i did everything but my app gets closed when i click to open it. It does not opens
Just Great.
For so many days trying to convert .py kivy program to apk but no use. After following your tutorial everything is just working smooth as it should. Thanks a lot.
My APK is not working it's open and close automatically. It's an weather app need solution please 😓
I can't thank you enough for this tutorial. I am going nuts trying to find ways on how to be able to create the .apk file and finally use the app in my android phone. You are a lifesaver! Glad I was able to find your channel.
Hello, i just go through the video.
I installed an android debug Bridge version 1.0.41 and as the adb version of the file is 1.0.39 it does not match.
What should i do in this case ?Thank u?
hello ma'am..... my app just shows the loading screen and close, plz help me!!!!!!!!!!😥😥😥
Hi! I was looking for some help in PT-BR for this matter and then I found your video. Thank you so much. You can´t believe but I lost several times installing and reinstalling Linux virtual machines in VirtualBox for nothing. And then, you, in less than 20 min helped me to solve my buildozer issues. So thank you!!!! Congrats!
Awesome tutorial! I have been working with Windows kivy apps, but was missing a clear tutorial on how to bundle for Android! Thank you só much!
Hey Maria!. Thanks a lot for this video. It worked and I finally converted my kivy and kivymd file into an apk. 😄💕
You are amazing. Exact step by step instructions without any "waffling" about.
Increduble! Wow!! Thank you Mariah . It works for me. All your steps were correct from A to Z.
Dear Mariya, let me congratulate you for this video. Your explanations were easy to understand and implement. Your detailed and clear explanations were unique to me
and helped me to create an android app in my cell phone and tablet. The question I have for you is how to incorporate an icon, other than the one of the kivy app, in my phone or tablet.
Thanks a lot, Alkis
Hello my dear and beautiful programmer friend, this topic is very interesting. I speak Spanish and I will see a way to learn what you explain to us. Thanks
Its working! I am very happy about that! I can`t wait to try it with application of my own 🙂
That's awesome! Have fun! 😁😁😁
@@PythonSimplified Thank you very much Mariya! ❤ I have a question. What if our project contain a .kv file. Do we need to change something else?
Does it work if we have multiple folders in the main.py directory? Do I have to change any line in the spec file or just keep it like in the video?
Amazing video and very well explained, I love it!. Thank you so much, I'm wondering how the hell you don't have at least 100k subscribers... Your content is very good.
You are totally great but "sudo mount -t C: /mnt/c -o metadata" command isn't working, please help me by fixing it, please reply🙏🙏🙏
What's the error? Try restarting you pc after the command
I am a beginner of Python. I was always attracted by your enthusiasm in your lectures. As recent as today, I failed twice in converting a kv file into apk. Then I realized that I don't need this approach at all. I'll just need Android Studio to write Android apks. So, thanks for your info, although I won't be using it. I am sure I shall need your help in the future. Stay put, take care! Good luck!
Woow! Thanks for this detailed tutorial!! You make it look soo easy :D
Thank you Lopo!! 😁 it is indeed very easy when you follow my tutorial!
Can't say it was anywhere near easy to figure out without it though 😅 There are many Stack Overflow and Github debugging threads scattered around the internet... so it's like finding a fish in the ocean 🤪
Mounting C: and matching the Windows adb server were quite a nightmare... but not anymore! 😉
I have time to go out for a coffee before this lesson starts.
Thank you Tobs, always a pleasure chatting with you! 😊
@@PythonSimplified I think I added you on LinkedIn and updated my profile to say "Python Programming"
@@Tobs_ awesome, thank you! just confirmed the connection! 😀
I remember trying to port to my android app and failed so miserably I just ended up using JPython and cython using android native c++ from Android studio with a opengl prefab. Guess I should have just ran an update on kivy but I did become better at C, Python, just about the same of Java. I hate how redundant Java is,so I try to avoid using it
Extra annoying? Its ok. We're all a little sometimes. Nice video young lady, I like it 👍
hahaha the pitch of my voice is higher than usual, and therefore extra annoying! 😅
Thank you so much! 😁
I had no idea about python a few months ago. I just started coding. Thank you very much for your useful content. I loved your explanation. Thanks again, good luck.
Wow: This is Incredibly Helpful, Thanks ~
You Are My Favorite Computer Instructor On The "Tube" ~
Keep it Coming ~
Thank you so much, always a pleasure reading your comments! 😁😁😁
Hi python simplified I am getting error
Buildozer failed to execute the last command # the error might be hidden in the log file above this error #please
Read the full log , and search for it before raising an issue with bulldozer itself
Thank you for this video. This was very useful for me I don't know about other's❤️
Might be a stupid question, but is it possible to install these application at the external SD-card, if these is formated as "internal storage" or must it be installed next to the operating system? But besides: Great work! I was searching a long time for these topic...
Hi Mariya, I had build a Car Game using Python library "Pygame" for my high school project. I was able to make its setup file and install on any computer and play. But I wanted to run the game on my android phone. Tried using this tutorial but not helpful can you suggest some way of making an apk from Pygame lib in python.
You know now?
Earned a sub today. Glad I stumbled upon you. Thank you so much and keep going!
Thank you so much. This was awesome and actually working in contrast to many other tutorials.
Hi, I have successfully created the APK and I tried opening it on my phone but it is not opening. It is showing loading with the kivy logo and closing. Please help me.
I have followed the video step by step but, finally, when I want to run my application in my android phone, she crash :/ (that write "loading..." and come to home menu)
I had a similar situation when I didn't specify all the requirements. Maybe double-check that you're not missing some module or library that your app can't run without.
Guys am In love with her teaching python. Thank you alot
OMG "OFC we have read all of them" haha u maide my day Maia Thx
Hi Mariya, thanks for the video. I have a question: how did you get the adb version 1.0.39? I could not find it.
So that's where I need to download the SDK, thank you!
You're welcome! 😊
Just make sure your Windows adb version is matching the Linux one! 😉 (if you're compiling this on a Windows machine)
first of all, it worked perfectly fine though it took like an hour so thank you so much for the tutorial. my question is, so the second time we want to update the changes, do we run like this for like an hour? love from Ethiopia
Hi Samri 😊
If you're just updating your app, without deleting the "bin" directory - it shouldn't take you so much time as you already have most of the packages built. So if buildozer detects the package in the directory - it should skip installing it and move on to the next command.
On my end, it was substantially faster to update an existing .apk file rather than to build from scratch. I usually change the title and name of this file into "myName_version2" or something of that sort so you can keep your previous version of the .apk as well to help with testing 😀
Good luck! and please let me know how long the update took on your end... I believe that on my end it takes 20 minutes to build and about 10 minutes to update.
Annnnnd of course sending some love back from Canada! 😁
@@PythonSimplified
hey again :)
so the second time I ran it, it took like 5 minutes or something...so I have this problem now. I am building my interface using kivymd and when I run it on my android phone it's not displaying it on full screen. it is displaying it in the right corner of the screen so what do you think is the problem? please help I have no idea how to solve it and the project submission date is near
Oh wow, I'm super happy it only took 5 minutes!
I would check the following things:
- How new is your version of Android?
- Are you modifying the size of your screen inside the Python file?
- Are you using Screen? it should be the container of your layout (GridLayout for example)
Let me know if any of these resolved the issue :)
@@PythonSimplified my phone's android version is 9 and yes the first time i ran it i limited the size using windows.size but then i deleted that line and ran it again but still no difference, and yes i used screen and also screen manager...so i am still trying to understand why its not working but i just can't figure it out and project due date is near please help dear
@@samrierena1723 that's so weird Samri 🤔 I'll pin your comment to the top and see if anybody watching this video handled this situation and might be able to help... please load your code to Github and send us a link, we'll need to figure out what's causing these issues as I couldn't find anything similar on Stack Overflow and other debugging platforms. Could you try to load it onto a different device? Android 9 should be good as it's relatively new, but maybe something else on the devices end is not interrogating the .apk file properly?
Also when is your project due? I can film a short later on today to see if anybody can help 😊
I get the following error message when running the buildozer -v android debug command: "WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available". Could you help me out?
you are a great teacher explaning everything clearly. glad ı found your channel. subscribed.
thank you for the tutorial, I never knew before that python could be converted to apk
Your tutorials are the best. Thank you for sharing. I am trying to figure out my app that includes sqlite3, a form and a list for a CRM System. It works fine on my laptop. But It keeps crashing after showing the first form screen. I am using linux mint 20.1, python 3.8, kivy 2.1.0 and kivymd 1.1.1.. Any advice will be appreciated. Thank you.
is it required to have the adb in my project folder?
If I run the "buildozer -v android debug" in the project folder in /mnt/c/users/... I get an error (not the permission error, before the red text there is nothing specifically mentioned). Do you know what the problem could be?
If I copy the project to my home directory on the ubuntu, I am able to build the apk. When running the App on the phone though it crashes after the loading screen.
Wow Your chanel is amazing and it shows from the quality, explanation and the languages subtitles. This day I got one question. Can I do the whole process using only git bash (without downloading Ubuntu App and the dependences of kali linux)?. Because I understand you need linux to do the whole process but git bash is a linux terminal too. Greetings from El Salvador
I'm so thankful to see this video. Hope it works once I followed your steps. Thank you. By the way, I already subscribed in your channel. I expect more Python videos in the future.
Hey there, I'm quite new to kivy and exporting apk. I was wondering if the three adb files could have been copy/pasted in the B2D files to replace them? Else why not? Thanks a lot! :)
Best easy explanation i seen at all.
Thanks. The ADB bridge part confused me. Ultimately, I think what you're saying is to upload to a phone, we need a folder with a main.py program, and 3 files from SDK (adb.exe and two .dll). However, the adb.exe from the SDK download probably won't match our Linux version--- so we should just copy these three files from your github. Is that correct?
thx your comment was very helpful :)
Hello Mariya, I am writing to thank you for your contribution, you have a very understandable way of explaining. But when executing the program it gave me an error, and I detected that the problem is in this instruction: from kivymd.uix.toolbar import MDToolbar, my question is: how did you manage to use the MDToolbar?
Waity waity .
So excited
Thank you, super happy to hear that! 😁
1. Is there any sample application you make?
2. How will you transform youraab file?
3. How will you add ads into the application?
Thank you, thank you, thank you. I deployed a snake game that I built, to my phone and I feel like a genius :D Thank you for your explanations, your playful attitude, and for making me feel like a genius.
You have good knowledge.
And
Very very nice
your teaching style and your voice .thanks ❤️❤️❤️
as a linux enthusiast,you lost me at "and then restart...."🤣
just kidding, great tutorial, thanks
hahahaha thank you! converting with Linux is easy enough, you don't need me there! 😊
The real challenge is getting Windows to behave! 😵
...
ALWAYS! with EVERYTHING! hahahaha 🤣🤣🤣
@@PythonSimplified haha, behave..i like that😘
for me its more a beehive, total chaos and no matter how i address it, it hurts 😩😅
I love you so much i have been waiting for this video for months
I love you so very much
Damn that's a lot of work. Those Python makers didn't make it easy did they? I appreciate you taking it step by step though.
The only content showing this in the world.
I'm getting an HTTPError: HTTP Error 503: Service Unavailable. The downloading worked the first time and even got through a couple of yes' options but then it gave me that HTTP error. After the error, now every time I run the buildozer -v android debug i can't even get to the first yes or no option. I'm using library public Wi Fi.
Hi!!! Thanks to you .....my apk is ready but do you know how to create option of in app purchase?
hi, i am getting this error:
sdkmanager path "/root/.buildozer/android/platform/android-sdk/tools/bin/sdkmanager" does not exist, sdkmanager is notinstalled
how can i fixed this?
I don't really work with python, only for small things, but your explanations are so good that i understand everything and i've been practicing with your videos, thanks Mariya!
17:47 p4a.fork and p4a.branch should be uncommented, presumably.
Oops!! YES!! you're right!!! sorry for not catching it! 😅
It's uncommented on buildozedr.spec on Github but I missed that while filming the video 🙃
Thanks for letting me know!
@@PythonSimplified So I managed to get this to work. It took over an hour to run. Didn't think my computer was quite that slow. I looked back at my buildozer.spec and these lines are still commented out. Was this the reason it was so slow? Should it have worked with those lines commented out? I haven't done a deep dive into understanding buildozer yet. Thanks for the video!
@@keithramey4723 it's substantially slower than compiling a desktop application! I believe it's because Python is not the go-to language for Android apps. It's definitley usable! But professional developers usually use Kotlin or Java for that... 😊
I think that in the future Python will be much more popular for mobile apps (and in general 😉), but until then - it's a long conversion process!
Also you'll need to uncomment those lines because they don't count as commands if you leave them as a comment... but if your icons are already showing on your mobile device - you don't even need to! 😀
@@PythonSimplified So I tried the tip from another comment. I copied the files to the WSL file system. Compiling went from just over an hour to about 18 minutes.
Hi Mariya. Great video! Could you please let me know which "phone mirror app " do you use at 10:30 ?
idk why but it's taking forever to build, i ran the line for the build almost 20 mins ago and it's still debugging or smth
Good video. As a student of python and other languages, this was helpful
Thank you for the completed explanation. This is what I needed
You're absolutely welcome Benjamin!
Let me know how it turned out on your end! 😊
@@PythonSimplified abd not installing
hey i might be late on this video but at 12:59 when i executed the cmd "buildozer -v aandroid debug" it didnt give me an error and its still going on debugging something and its been more than 30mins now . I just wanna know that if its normal or not
Hi, I did as told and created the APK and installed it. But when I open it the app tries loading and crashes. Can you please guide me on how to rectify this?
Greetings, i have a Xiaomi and run through your video with the downloaded B2D-App, but the app wont start as used to... How can i fix it or wich smartphone would be better?
Where do i get the android debug bridge 10.0.39???
I have the same question...
Thanks for your video! I was able to get it to work overcoming a few glitches on the way. Would it be possible to give some references to know how you figured out your dependencies? For instance, how did you know to add pillow as a dependency? Did you just run it and get error messages?
+1
I know this comment is old, but for anyone else wondering. The python code for the app imported pillow, if the python code imports a library, it's a dependency.
Hi! What program did you use to mirror your phones srcreen, and what did you use for the UI?
Madam thank you so much for your time and, sharing your knowledge with me
Thanks for the energetic tutorial as always. The line was left commented out while setting config to point to github fork. Was that intentional?
please help , when i type buildozr init the terminal say command not found !!
Hi Mariya, I really need your help here. I used libraries such as openpyxl and random in my kivy app. It works fine when running in windows. I followed your video on converting to apk but after building the apps I opened it in my mobile and it shows the kivy loading.. and crash. I did add openpyxl in the library and its version as instructed. Then i exclude openpyxl and random from my app and it works fine. So, how can I used those libraries?. Does buildozer not support openpyxl, random or any other library than kivy.
please, I really appreciate your teaching. Can you please, teach me more about the sudo mount -t drvfs C: /mnt/c -O metadata. please, getting error when executing this command and when I run buildozer -v android debug I also get error about permission. I am using windows 10.
E: Package 'python3-pip' has no installation candidate
please help my problem is when i do sudo apt python3-pip it says "Package 'python3-pip' has no installation candidate"
My app immediately crashes on real and virtual devices with "EGL_BAD_DISPLAY" error message in the logcat
i went to the link if windows Subsystem docs but i did not see the steps and the things you were talking about .
Hello! Your tutorial is really very good! BUT I found an error why this didn't work now, in Mai 2022. Thr module buildozer was updating, and with the latest version of buildozer (1.3.0) it print an error! So now you have to manually set up the version 1.2.0 of buildozer. So when you have to install the buildozer you have to write: pip3 install --user --upgrade buildozer==1.2.0
I found the solution by myself, it was a pain in my head but now it's work very well! Enjoy!
25 Mai 2022 - Worked!
at 11:48 how do you check your kivymd version? I can check my kivy version from pip freeze, but can't see my kivymd version under pip freeze
Thank you! My app kept crashing and was stuck on this error for ages, turns out I just needed to add Pillow as a requirment to get my MDDatePicker to work!