2016-10-04 92 views
0

當您嘗試構建應用程序時。應用程序通常收集並且只在沒有外部應用程序庫時運行。當您嘗試連接networkx庫時。附錄通常收集。但是當你嘗試直接在設備上運行。 Pops Saver「Loadind ...」和應用程序下降。你需要改變什麼才能使所有的工作。 附件是應用程序代碼:如何在Kivy中連接外部庫

from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.uix.floatlayout import FloatLayout 
from kivy.uix.scatter import Scatter 
from kivy.uix.boxlayout import BoxLayout 
from kivy.graphics.vertex_instructions import * 
from kivy.graphics.context_instructions import Color 
import networkx as nx 


G = nx.Graph() 
G.add_node(1) 
G.add_node(2) 
G.add_node(3) 
G.add_node(4) 
G.add_edge(1,2) 
G.add_edge(1,3) 
G.add_edge(3,4) 
G.add_edge(2,3) 

class SimpleKivy(App): 
    def build(self): 
     b = BoxLayout() 
     l = Label(text=str(nx.shortest_path(G,1,4))) 
     textinput1 = TextInput(text=str(nx.shortest_path(G,1,4))) 
     textinput1.bind(text=l.setter('text')) 
     f = FloatLayout() 
     s = Scatter() 
     s.add_widget(l) 
     f.add_widget(s) 
     b.add_widget(f) 
     b.add_widget(textinput1) 
     return b 


if __name__ == "__main__": 
    SimpleKivy().run() 
+0

我確定你需要的目標設備或Python僅模塊......一個dll –

+1

什麼,你應該做的第一件事是'亞行logcat'並檢查輸出。在那裏(並且在kivy直接登錄)你會看到'networkx'包缺失。 P4A/Buildozer僅打包默認解釋器(+ kivy deps)+顯式提供的軟件包,因此您需要在.spec文件中聲明它們。 – KeyWeeUsr

+0

改變.spek沒有區別,應用程序仍然崩潰 – rtyuOp

回答

1

在你buildozer.spec文件,行39添加第三方質量要求。

requirements = kivy,networkx, # or what ever 
+0

似乎像純Python包,所以...你走了! ^^ – KeyWeeUsr

相關問題