Buildozer 给出错误 'WindowInfoX11' is not a type identifier
Buildozer gives error 'WindowInfoX11' is not a type identifier
我正在使用 python 2.7.12、buildozer 0.34、cython 0.25.2 和 kivy 1.10.0。我打算使用 KivMob 在我的应用程序上展示广告。我已经有了我的测试设备 ID 和 APP_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 中写道:
requirements = kivy, hostpython2, android, kivmob
android.permissions = INTERNET, ACCESS_NETWORK_STATE
p4a.source_dir = /python-for-android-admob/
p4a.bootstrap = sdl2-admob
但是当我运行命令"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
我尝试构建一个简单的 hello world 按钮应用程序,它使用与上面相同版本的 python、buildozer、cython 和 kivy。并使用 python-for-android-master。
p4a.source_dir = /python-for-android-master/
简单的 hello world 按钮应用已成功创建。
我真的很想在我的应用程序上展示广告。我将不胜感激任何帮助。谢谢。
我遇到了同样的问题,通过快速更改设置解决了。
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
Master 分支是 KivMob 下的默认 Kivy python-for-android,因此将其更改为另一个版本(在我的情况下为 1.10.0 版)可以解决问题。
按照以下步骤操作:
转到 KivMob 的 Kivy 食谱文件夹 $HOME/python-for-android-admob/pythonforandroid/recipes/kivy
,
open __init_.py
编辑第9行 (version = 'master'
)如下:
version ='1.10.0'
我正在使用 python 2.7.12、buildozer 0.34、cython 0.25.2 和 kivy 1.10.0。我打算使用 KivMob 在我的应用程序上展示广告。我已经有了我的测试设备 ID 和 APP_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 中写道:
requirements = kivy, hostpython2, android, kivmob
android.permissions = INTERNET, ACCESS_NETWORK_STATE
p4a.source_dir = /python-for-android-admob/
p4a.bootstrap = sdl2-admob
但是当我运行命令"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
我尝试构建一个简单的 hello world 按钮应用程序,它使用与上面相同版本的 python、buildozer、cython 和 kivy。并使用 python-for-android-master。
p4a.source_dir = /python-for-android-master/
简单的 hello world 按钮应用已成功创建。
我真的很想在我的应用程序上展示广告。我将不胜感激任何帮助。谢谢。
我遇到了同样的问题,通过快速更改设置解决了。
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
Master 分支是 KivMob 下的默认 Kivy python-for-android,因此将其更改为另一个版本(在我的情况下为 1.10.0 版)可以解决问题。
按照以下步骤操作:
转到 KivMob 的 Kivy 食谱文件夹
$HOME/python-for-android-admob/pythonforandroid/recipes/kivy
,open __init_.py
编辑第9行 (
version = 'master'
)如下:version ='1.10.0'