我一直在使用并将一些不同的程序包部署到我的kivy应用程序中,没有任何麻烦,直到那时,如果我的应用程序是32或64,我就不必担心要为其构建并与之相关的Android arch位。
当实现用于Microsoft SQL Server的模块时,情况发生了变化,我使用了pyodbc,因此我遵循了本教程Microsoft ODBC driver for SQL Server tutorial,并获得了该驱动程序的安装:'ODBC Driver 17 for SQL Server”。
后来,我在文档之后添加了FreeTDS驱动程序,并用这些行修改了 odbcinst.ini 。
[FreeTDS]
Description = v0.91 with protocol v7.2
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
并在 obdc.ini 中创建了一个DSN,以便稍后在代码中调用它:
[dbserverdsn]
Driver = FreeTDS
Server = <Server IP>
Port = 1433
TDS_Version = 7.3
Database = <DB name>
这里是如何建立连接的:
self._db_connection = pyodbc.connect('DSN=dbserverdsn;'
'UID=Arn_Rojas;'
'PWD=password_here')
在我的LinuxLite机器上,两个驱动程序的所有工作都很好,但是当我尝试在android中部署它时,出现此错误:
ImportError: dlopen failed: "/data/data/org.test.myapp/files/app/_python_bundle/site-packages/pyodbc.so" is 64-bit instead of 32-bit
我尝试在buildozer.spec文件中更改此设置:
android.arch = armeabi-v7a
# TO
android.arch = arm64-v8a
但这没用。
我还试图找到一种安装32位pyodbc驱动程序的方法,但对我而言这是不可能的,所以在这里,我欢迎您的建议和意见,告诉我是否需要更多信息。