Найти - Пользователи
Полная версия: Черный экран после компиляции в apk Python kivy buildozer
Начало » Python для новичков » Черный экран после компиляции в apk Python kivy buildozer
1 2
FarshikARC
Суть на пк скрипты запускаются отлично, и на винде и на линуксе. Но запакованный в apk файил после установки и заспуска выдает тупо чемрный экран и больше ничего.
Код написан только частично, и пока делает только малую часть того что запланировано. Но так как я не разу не упаковывал py в apk, решил попробовать заранее и видимо не зря.
Собственно main.py:
[code python]from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.scrollview import ScrollView
import warnings
import string
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.properties import ObjectProperty

z = []

class Container (GridLayout):

kukumber = ObjectProperty()
label_kukumber = ObjectProperty()

def uhu_text(self):
self.kukumber.text = ''
with open('pass.ddg', 'r') as pass_list:
ss = pass_list.readlines()
for i in range(len(ss)):
z.append(ss[i])

r = ' '.join(z)
#print(r)
self.label_kukumber.text = r
self.kukumber.text = ''

def add_pass(self):
if self.kukumber.text == '':
self.label_kukumber.text='Введите текст!'
else:
with open('pass.ddg', 'a+') as pass_list:
new_pass = self.kukumber.text
pass_list.seek(0.2) # перемещение курсора в конец файла
pass_list.write('\n ================== \n'+new_pass)
pass_list.close()
print(self.kukumber.text)
self.label_kukumber.text='Обновите экран'


class MyApp(App):
def build(self):

return Container()

if __name__ == '__main__':
MyApp().run()
[/code]
My.kv:
[code python]
<Container>:
rows:4
padding: 50

kukumber: text_input
label_kukumber: label

TextInput:
id: text_input
# size_hint: 1, 0.5
multiline: True
size_hint: 1,0.20
ScrollView:
do_scroll_x: False
do_scroll_y: True
Label:
id: label
text: 'sometext3543534534534535354345345'
size_hint_y: None
height: self.texture_size[1]
text_size: self.width - dp(10), None
#color: 0, 0, 0, 1

BoxLayout:
size_hint: 1,0.1
# anchor_x: 'left'
anchor_y: 'top'
Button:
# pos: 10, 100
# size: 200, 50
# size_hint: None, None
text: 'показать'
text_zize: 20
# size_hint_x: .1
# size_hint_y: None
#font_size: 40
on_release:
self.text = 'обновить'
root.uhu_text()


Button:
# pos: 10, 100
# size: 200, 30
# size_hint: None, None
text: 'добавить'
text_zize: 20
# size_hint_x: .1

#font_size: 40
on_release:
root.add_pass()[/code]

buildozer.spec
[app]

# (str) Title of your application
title = MyApp

# (str) Package name
package.name = myapp

# (str) Package domain (needed for android/ios packaging)
package.domain = org.test

# (str) Source code where the main.py live
source.dir = .

# (list) Source files to include (leave empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,ddg

version = 0.1


requirements = python3,kivy,android


orientation = portrait


osx.kivy_version = 2.2.0

fullscreen = 0

android.archs = arm64-v8a, armeabi-v7a

android.allow_backup = True



mage_url =


[buildozer]

# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2

# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1

# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer

# (str) Path to build output (i.e. .apk, .aab, .ipa) storage
# bin_dir = ./bin
Упаковалось все вроде без ошибок. Куда копать куда смотреть, что я делаю не так?
ZerG

Упаковалось все вроде без ошибок. Куда копать куда смотреть, что я делаю не так?
Вы пытаетесь писать приложение под ведро на python

Даже в рамках данного ресурса можно сделать поиск по слову киви и обнаружить несчетное количество постов с вашей проблемой и рассуждениями почему этого делать не стоит.
Если сухо:
Писать апки под ведро надо на ведре.
Как минимум - нужно зайти в ведро по ADB и запустить апку из консоли на предмет вывода ошибок(и добавить в код принтов что бы понять где вешается - если оно вобще запускается)
FarshikARC
ZerG
рассуждениями почему этого делать не стоит.
Ответ более чем устраивает. Яж новичок в этом деле. И не натыкался на посты почему этого делать не стоит. Но теперь видимо придется смотреть в другую сторону. Везде на оборот инструкции упаковки на линуксе buildozer'ом. Блин софтина то простая, думал быстренько накидаю и збс. Ладно благодарю за ответ.
py.user.next
FarshikARC
Везде на оборот инструкции упаковки на линуксе buildozer'ом. Блин софтина то простая, думал быстренько накидаю и збс.
Не, она простая для тех, кто уже умеет делать приложения по-нормальному - на Java или Kotlin. А так ты её просто не можешь разобрать и посмотреть, что же там внутри этого apk-файла неправильно в итоге после Бульдозера.
ZerG
FarshikARC
Бульдозер - это только вершина айсберга
Кроме того что бы нарисовать итерфейс нужно еще взаимодействие с устройством и тут питон негодится совершенно
То есть писать кросс для винды - линукса мака на питоне - очень даже можно
Но девелопить под ведро отнюдь и увы
Там даже на родном джава и котлине полная анархия
FarshikARC
ЗерГ
А теперь еще больше понял. Блин какие тут хорошие люди на форуме, надо почаще заглядывать.
Получается что питон по сути выступает в роли посредника для кроссплатформенности. Как универсальный язык, но слегка не полноценный. Ладно я его все равно подучил для небольших скриптов и серверов на линуксе, в основном что бы с контроллерами всякими по сети взаимодействовать.
Пойду учить Котлайн. Ява мне показалась более сложным для таких задач (Возможно в связи с отсутствием опыта). Может что и получится)))) Спасибо вам друзья.
py.user.next
FarshikARC
Пойду учить Котлайн. Ява мне показалась более сложным для таких задач
С Котлином тебя ждёт то же самое разочарование. Он нигде не применяется, кроме как для Андроида. Может быть, он выживет и останется в истории, но это пока неточно, потому что у него сообщество слабое. Другое дело Java, который уже не исчезнет никуда точно и останется в истории, и питон тот же, который никому уже не принадлежит, даже создатель уже на него не влияет особо, он отдельно живёт уже от создателя в сообществе.

Просто у Котлина задача была в чём? В том, чтобы язык хороший сделать ещё один? Не, это просто нужно было разрекламировать своего создателя через Андроид и повлиять на его личное благосостояние. Сейчас у них такой бзик. Вот он нажрётся, как Цукерберг какой-нибудь, и эта вся фигня встанет в своём развитии. Тот тоже начинал типа там “да я для общества что-то там хочу сделать, для дальтоников” и чем это закончилось? Мальчик нажрался и эта хрень вся превратилась в какой-то концлагерь для овечек, неграми никого не называй, палестинские миллионные аккаунты он удалил и так далее. Это вот говорит о том, какая у него цель была. Что это всё балабольство - про общение людей во всём мире там, про дружбу, жвачку и тп.

Так что смотри сам, Kotlin - это вот такая вот фигня. Ты на него зайдёшь, всё изучишь, а он тебе скажет “а я больше не буду ничего делать”.
FarshikARC
py.user.next
Да это я уже понял как начал про него смотреть инфу. Но проблема в том что я сам не кодер, я сисадмин. И яву мне под “старость лет” уже трудновато осиливать, точнее ту ее часть что связана с графическим интерфейсом, котлин в этом плане вроде как более понятен. Написать без графического интерфейса не проблема, делал интересные вещи. Такие как “светофор” менеджерам, висящий на стене и загорающийся когда приходили письма на почту от определенных людей. По этому C, C++, python я еще могу набросать что то, немного косо, криво, но работает как надо. (Надеюсь ни кто ни когда не будет читать мой код хД). Но тут мне нужно, лично для меня, свое приложение, простенькое по своей сути, но требующее графического интерфейса, для ПК оно уже есть на питоне, но нужно еще на телефон. Именно по этому для меня котлин самый хороший вариант, все таки он проще. Я не собираюсь его потом поддерживать и обновлять, если будет работать, то мне больше от него ни чего и не надо. Не надо выкладывать на плеймаркеты и прочее. Я бы даже готов немного заплатить за такую приложуху. Но я человек дотошный, и мне надо что бы было так как мне надо. А с таким как я за “Немного” работать не будут , только за “Много”. хД… Так что котлин для меня пока самое то.
ZerG
Вопрос интересный на самом деле
Если тебе ненужны пуши то смысла в приложении нет - почему бы не заюзать вебинтефейс? Будет одинаково для всех сразу

Если же задача простая - телерам бот какойнить тоже решение

Я к тому - стоит ли тратить время на изучения котлина ради приложухи в три светодиода?
py.user.next
FarshikARC
Такие как “светофор” менеджерам, висящий на стене и загорающийся когда приходили письма на почту от определенных людей. По этому C, C++, python я еще могу набросать что то, немного косо, криво, но работает как надо.
Да неважно, какая программа, главное, что ты её писал и написал и она работала. То есть ты её сделал из пустоты. Если ты делаешь из пустоты программы, значит ты программист. Просто есть дохера “программистов”, которые только вот всё изучают, но у них ни одной программы нет. И так двадцать лет проходит, а у них как не было программ, так и нет программ. Ты его спрашиваешь “а что ты написал? покажи, интересно!”, а он такой “так я вот там работал, вот там я работал”. Какая разница, где ты там работал, мне это вообще похеру, если ты нихера не написал, какой ты программист тогда?! Это как повар, который шеф-повар на все руки, который просит тебя картошку пожарить ему, потому что он уже не ел неделю, а сам он жарить не умеет её, потому что она там потом скрипит на зубах, из-за того что в ней грязь. Ты знаешь, сколько таких вокруг? Почему и нет нихера в стране, вот такие “программисты” там программируют, работнички за зарплату. А вся суть сводится к тому, чтобы где-то закупить, а потом наклейку переклеить и за своё выдать, чужую работу.

Так что для смартфонов бери то, что для них родное. Если ты изучал C и C++, и даже если ты их различаешь между собой и знаешь, что это два абсолютно разных языка, то конструкции из Java для тебя будут родными. Потому что этот Kotlin, он какой-то паскалевидный. Что было в Pascal'е? В Pascal'е всё за тебя делалось. Потом паскалист садится за каую-то фигню современную и сделать ничего не может, потому что язык за него сопли не подтирает, как это было раньше. Поэтому очень часто они остаются на Паскале, ну переходят на Delphi, типа он современнее. И вот мозги у них вот так и остаются, развитыми таким образом, что они от языка ожидают, что тот сам всё посчитает за них, что там всё само сделается. Это психология. Почему им на C++ тяжело переходить? да потому что это неудобно, там надо будет всё самому делать, а он к этому не привык.

Вот хочешь программировать - тебе нужны языки инженеров. Это C, C++, Assembly. Ну Java произошёл от них, поэтому там конструктивно примерно такой дух есть. Но он, конечно, заточен изначально под объектно-ориентированное программирование. Да, надо понимать в нём, что такое полиморфизм, зачем это надо, а почему тут надо применять что-то, а там не надо применять что-то, хоть и можно применить. ООП - это очень сложная вещь. Ты её не выучишь за месяц, как там это распространяется сегодня всякими говношколами и говнокурсами, что любой школьник может его выучить, - это всё туфта. Это не про ООП речь вообще, это про кусочек от ООП, причём маленький кусочек, который ничего не решает вообще.

Так что Kotlin, ну ты ищешь в нём спасение, а он тебя заведёт в ловушку. Ну потеряешь время, да. Это твой риск.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB