Buildozer给出错误“WindowInfoX11”不是类型标识

2024-10-17 08:19:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python2.7.12、buildozer 0.34、cython 0.25.2和kivy1.10.0。我计划用KivMob在我的应用程序上显示广告。我已经有了我的测试设备ID和应用程序ID。我从KivMob尝试了这段代码。在

from kivmob import KivMob
from kivy.app import App
from kivy.uix.button import Button

class KivMobTest(App):

    def build(self):
        ads = KivMob("ca-app-pub-APP_ID")
        ads.add_test_device("TEST_DEVICE_ID")
        ads.new_interstitial("ca-app-pub-INTERSTITIAL_ID")
        ads.request_interstitial()
        return Button(text='Show Interstitial',
                      on_release= lambda a:ads.show_interstitial())

把这个写在buildozer.spec公司名称:

^{pr2}$

但是当我运行命令“buildozer-v android debug”时,它会给出一个错误:

kivy/core/window/window_x11.pyx:221:13: 'WindowInfoX11' is not a type identifier


  STDERR:

# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist_name=myapp --bootstrap=sdl2-admob --requirements=kivy,hostpython2,android,kivmob --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/ken/testads/.buildozer/android/platform/build
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

我试图构建一个简单的helloworld按钮应用程序,它使用了上面提到的python、buildozer、cython和kivy的相同版本。在android主机上使用python。在

p4a.source_dir = /python-for-android-master/

简单的hello world按钮应用程序成功创建。在

我真的很想在我的应用程序上显示广告。我会很感激你的帮助。谢谢。在


Tags: thefromimportlogidapp应用程序cython
1条回答
网友
1楼 · 发布于 2024-10-17 08:19:14

我也遇到了同样的问题,通过快速改变设置来解决。在

I use Buildozer 0.35dev, Cython 0.21.2, Python 2.7.12 and Kivy 1.9.0

此问题与python for android下的Kivy版本有关(不是安装在PC中的Kivy)。
x11 - ImportError: No module named 'kivy.core.window.window_x11

主分支是kivmobpythonforandroid下的默认Kivy,因此将其更改为另一个版本(在我的例子中是版本1.10.0)可以解决这个问题。在

按照以下步骤操作:

  • 转到KivMob的Kivy recipe文件夹$HOME/python-for-android-admob/pythonforandroid/recipes/kivy

  • open __init_.py

  • 编辑第9行version = 'master')如下:
    version ='1.10.0'

相关问题 更多 >