Python Kivy İle Derleme Nasıl Yapabilirim

Merhaba, kivy ile android ile çalışacak bir uygulama yapmaya çalışıyorum. PyCharm ile çalıştırdığım zaman hata almıyorum. Kivy paketleme dökümanı ile debian ile buildozer kullanarak paketleme işlemini gerçekleştiriyorum. Ama android ile apk’yı telefona kurduğumda çalışmıyor. Kivy Paketleme ile verilen kodları paketlediğim zaman hata olmuyor. Ama benim kodlarımı paketlediğim zaman uygulamayı paketliyor ama telefonda açmıyor, uygulamaya girince direk atıyor uygulamadan. .spec dosyasında sadece isim değiştiriyorum ve icon ekliyorum başka bir değişiklik yapmıyorum.

main.py dosyam:

from kivy.app import App
from kivy.uix.popup import Popup
import os

class PictureOpen(Popup):
        pass

class SongsKnock(Popup):
    pass

class Apps(App):

    def Stop(self,nesne):
        self.stop(nesne)

    def build(self):
        self.title = 'APP'
        #self.icon = "requirement/pictures/1.png"

#Buton'ların tıklama olayları

    def OpenPhoto(self,pictures):
        showPhoto = PictureOpen()
        showPhoto.open()

    def KnockSong(self,openSongs):
        knockMusic = SongsKnock()
        knockMusic.open()

    def song1(self,music1):
        pass
        #os.system("start requirement/music/song1.mp3")

    def song2(self,music2):
        pass
    #os.system("start requirement/music/song2.mp3")

Apps().run()

.kv uzantılı dosyam:

<Apps>:

FloatLayout:

    Button:
        text:"Fotoğraf"
        size_hint: (.8,.1)
        pos_hint: {"x": .1,"y":.7}
        on_press: app.OpenPhoto(app)

    Button:
        text:"Müzik"
        size_hint: (.8,.1)
        pos_hint: {"x": .1,"y":.5}
        on_press: app.KnockSong(app)

    Button:
        text:"Çıkış"
        size_hint: (.8,.1)
        pos_hint: {"x": .1,"y":.3}
        on_press: app.Stop(app)

<PictureOpen>:
    title: "Fotoğraf Gösterici"
    size_hint: (.9, .9)

<SongsKnock>:
    title: "Müzikler"
    size_hint: (.9, .9)

    BoxLayout:
        orientation: "vertical"
        Button:
            text: "Müzik 1"
            size_hint: (.8,.1)
            pos_hint: {"x": .1,"y":.3}
            on_press: app.song1(app)

        Button:
            text: "Müzik 2"
            size_hint: (.8,.1)
            pos_hint: {"x": .1,"y":.3}
            on_press: app.song2(app)

        Button:
            text: "..."
            size_hint: (.8,.1)
            pos_hint: {"x": .1,"y":.3}

        Button:
            text: "..."
            size_hint: (.8,.1)
            pos_hint: {"x": .1,"y":.3}

Yapmaya çalıştıım şey butonlara tıklandığı zaman müzik veya bir resim göstermek ama şimdilik eklemedim, apk işlemini yapabilecek miyim diye.

Bahsettiğim şekilde resim eklemek istesem ya da müzik, nasıl .spec dosyasına dahil edebilirim eklediğim resim ve müzikleri. buildozer.spec dosyası ile aynı dizinde requirement adlı dosya da bulunsa ve sonra paketlesem aşağıdaki kod çalışır mı?

os.system(“start requirement/music/song1.mp3”)

örneğin bu kod çalıştığı zaman requirement adlı dosyayı bulabilir mi?

Aynı dizindeyse bulur bence ama değilse o dosyanın dizinini verin bunu deneyerek de görebilirsiniz.

PyCharm ile çalıştığı zaman buluyor zaten ama apk işlemi gerçekleştirdiğim zaman telde hata verir mi acaba? Uygulamayı apk’ya çeviriyorum ama dediğim gibi uygulamadan direk atıyor, bu yüzden telde çalışır mı daha deneyemedim :slight_smile:

Telde de aynı dizinde olmalı işte. Denemende de fayda var.

Şuan da apk’ya çevirirken resim veya müzik eklemedim zaten, kivy kodlarını paketliyorum ama açmıyor telefon. Eğer paketlediğim zaman sounsuz tel açarsa resim ve müzik eklediğim zaman da aynı dizine koyarım o zaman. Teşekkürler :slight_smile:

Rica ederim. Kivy ile pek çalışmadım. Açmamasının nedenini pek bilmiyorum o yüzden.

1 Beğeni

Paketlemeden önce kivy launcher de çalıştırın olumlu sonuç alırsanız paketleme işlemine geçin

Kivy launcher:https://play.google.com/store/apps/details?id=org.kivy.pygame

Kivy launcher kulladım ama onda da durum aynı. Hata nerede bilmiyorum, yukarıdaki kodları paketlediğim zaman bir fonksiyonu olmayan buton ekranı döndürmeli bana, hatam nerede onu göremiyorum.

Alternatifleri araştırabilirsin abi. Belki bu video iş görür.

Kivy launcher de çalıştırmadan önce kodlarınız en başına bunları ekleyin.

#!/usr/bin/env python
# -*- coding: utf8 -*-

abi bu yorum satırı ama nasıl algılıyor

Bunu daha önce hiç araştırmadım nasıl algıladığı hakkında bir fikrim yok ama bu linkte bir kaç bilgi var

Özel bir anlam taşıyormuş dosyanın en başındaysa

Teşekkür ederim :slight_smile: Youtube’de görmüştüm bu videoyu ama sağ ol yine de.

Yine düzelmedi. Sonuç aynı :frowning:

Ses dosyalarını için kivy modülünü kullan

Teşekkür ederim :slight_smile: Ses ekleme yaptığım zaman kullanacağım. Şimdilik hala hata veriyor ama. Kivy launcher açılıyor ve sonra kapanıyor.

Kodlarla biraz değişiklik yaptım kivy launcher de çalıştırdım.

1 Beğeni

Evet aslıda yapmak istediğim şey bu, ama ben de kivy launcher açmıyor. Rica etsem kodlarınızı paylaşır mısınız?

main.py
(Pydroid ile yazdım)

#!/usr/bin/env python
# -*- coding: utf8 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.popup import Popup


Builder.load_file("game.kv")

class PictureOpen(Popup):
    pass

class SongsKnock(Popup):
    def song1(self):
        pass
        #os.system("start requirement/music/song1.mp3")

    def song2(self):
        pass
    #os.system("start requirement/music/song2.mp3")


class GameLayout(FloatLayout):

    def Stop(self):
        quit()

    def build(self):
        self.title = 'APP'
        #self.icon = "requirement/pictures/1.png"

#Buton'ların tıklama olayları

    def OpenPhoto(self):
        showPhoto = PictureOpen()
        showPhoto.open()

    def KnockSong(self):
        knockMusic = SongsKnock()
        knockMusic.open()
	
class AppGame(App):
	def build(self):
		return GameLayout()
		
		


AppGame().run()

kv

<GameLayout>:
	ScreenManager:
		id:screen_manager
		
		Screen:
			name:"main"
			Button:
				text:"Fotoğraf"
				size_hint: (.8,.1)
				pos_hint: {"x": .1,"y":.7}
				on_press:root.OpenPhoto()

			Button:
				text:"Müzik"
				size_hint: (.8,.1)
				pos_hint: {"x": .1,"y":.5}
				on_press:root.KnockSong()
			
			Button:
				text:"Çıkış"
				size_hint: (.8,.1)
				pos_hint: {"x": .1,"y":.3}
				on_press:root.Stop()
				
				
<PictureOpen>:
	title: "Fotoğraf Gösterici"
	size_hint: (.9, .9)

<SongsKnock>:
	title: "Müzikler"
	size_hint: (.9, .9)

	BoxLayout:
		orientation: "vertical"
		Button:
			text: "Müzik 1"
			size_hint: (.8,.1)
			pos_hint: {"x": .1,"y":.3}
			on_press:root.song1()

		Button:
			text: "Müzik 2"
			size_hint: (.8,.1)
			pos_hint: {"x": .1,"y":.3}
			on_press:root.song2()

		Button:
			text: "..."
			size_hint: (.8,.1)
			pos_hint: {"x": .1,"y":.3}

		Button:
			text: "..."
			size_hint: (.8,.1)
			pos_hint: {"x": .1,"y":.3}

anroid.txt

title=TestApp
author=Murat
orientation=portrait