-1

有没有人成功地将 aiofiles 合并到 buildozer apk 中。该软件包正在构建,但在手机或模拟器上安装 apk 后会崩溃。我已经测试了所有其他进口产品,它们工作正常。Buildozer 规格如下

[应用程序]

标题 = 我的应用程序

package.name = myapp

package.domain = org.test

源.dir = .

source.include_exts = py,png,jpg,kv,atlas,json,mp3,gif,txt,md,gitignore,ttf,zip,cfg,TTF

#source.include_patterns = assets/ ,images/ .png

#source.exclude_exts = 规范

#source.exclude_dirs = 测试,bin

#source.exclude_patterns = license,images/ / .jpg

版本 = 0.1

要求 = python3,kivy,google,pyjnius,kivymd,certifi,kivyauth,openssl,ws4py,jnius,android,google-auth,凭证,oauth2,urllib3,oauth2client,firebase,pygame,jwcrypto,pycryptodome,sseclient,requests_toolbelt,python_jwt, gcloud,rsa,密码学,httplib2,pyrebase,sdl2,sdl2_image,sdl2_mixer,sdl2_ttf, firebase-auth,cachetools,google-cloud,firebase-client,google-cloud-storage,jwt,PIL,chardet,nodejs,ast,aiofiles,线程,日期时间,操作系统,sys,re,cython,pip,setuptools,线程,concurrent.futures,asyncio,plyer

方向=纵向

osx.python_version = 3

osx.kivy_version = 1.9.1

全屏 = 0

#android.permissions = 互联网

#android.api = 30

#android.minapi = 21

#android.sdk = 20

#android.ndk_api = 21

#android.private_storage = 真

#android.ndk_path =

#android.sdk_path =

#android.logcat_filters = *:S python:D

#android.copy_libs = 1

android.arch = armeabi-v7a

p4a.branch = 主

#ios.kivy_ios_url = https://github.com/kivy/kivy-ios

ios.ios_deploy_url = https://github.com/phonegap/ios-deploy ios.ios_deploy_branch = 1.7.0

#[构建器]

#from kivy.app import App
#from kivy.uix.widget import Widget
#from kivy.graphics import Color, Ellipse, Line


#import aiofiles





class MyPaintWidget(Widget):

    def on_touch_down(self, touch):
        with self.canvas:
            Color(1, 1, 0)
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2),   size=(d, d))
            touch.ud['line'] = Line(points=(touch.x, touch.y))

    def on_touch_move(self, touch):
        touch.ud['line'].points += [touch.x, touch.y]


class MyPaintApp(App):

    def build(self):
        return MyPaintWidget()


if __name__ == '__main__':
    MyPaintApp().run()
4

1 回答 1

1

为了能够导入,您必须在文件的参数中aiofiles指定它。您已经在那里指定了它,但您也指定了许多未使用的依赖项。问题之一是您使用点而不是逗号分隔和模块,这使得无法通过 pip 安装。requirementsbuildozer.specconcurrentfutures

我删除了未使用的依赖项,如下所示:

requirements = python3,kivy,aiofiles

然后 apk 构建成功,并且在 Android 设备上运行没有问题。

一般来说,每当您的应用程序在 android 上崩溃时,最好查看 Android 控制台输出以找出问题所在。取消文件中的注释android.logcat_filters = *:S python:Dbuildozer.spec,然后使用以下命令在 ADB 上构建和部署它:

buildozer -v android debug deploy run logcat

查看文档:https ://buildozer.readthedocs.io/en/latest/quickstart.html#init-and-build-for-android

于 2021-10-12T20:49:57.067 回答