出于测试目的,我在Raspberry Pi 3上尝试Emteria OS.Emteria版本是基于7.1 android版本的0.6.1。
使用C ++构建器,我创建了一个简单的多设备项目。表单只包含一个标签。我尝试将应用程序部署到我的RaspBerry Pi目标Android平台并通过以太网使用ADB。
当应用程序在RaspBerry Pi中执行时,我看到了一个EContext3DException。我试着研究为什么我通过网络达到这个例外,但我找不到有关此例外的有趣信息。
所以我不知道问题是存在于操作系统中还是我错过了某处的配置。
正如Emteria的回复,Raspberry GPU使用OpenGL 2.0和RAD Studio之间存在一些不兼容性。
在Raspberry支持OpenGL 3.0之前似乎是同样的问题,因为我不认为embarcadero会花时间与OpenGL 2.0库兼容。
有一个解决方法。这个解决方法是通过SanderK的emteria论坛进行的。
您需要在embarcadero安装目录的源文件夹中找到文件FMX.Context.GLES.pas,并找到包含以下代码的行:
if Flag <> GL_NO_ERROR then
将此行替换为:
if (Flag <> GL_NO_ERROR) and (Flag <> GL_INVALID_VALUE) then
之后,您需要在项目中添加此修改后的文件,然后进行编译。