【发布时间】:2012-10-24 00:29:25
【问题描述】:
过去几天,我一直在努力让系统启动并运行,以构建我们的 Android NDK 应用程序的多种配置。我能够很好地构建图书馆;我遇到的问题通常源于在更改构建配置时使这些库保持最新状态。
我需要一个大多数情况下完全自动化的系统:用户只需更改构建配置,一切就正常工作!
您如何解决构建配置和库未正确重建的问题?
我尝试了很多不同的方法来解决这个问题,但它们似乎都以我无法控制的问题告终。
最初我们只是输出了一个同名的共享对象文件,而不考虑构建配置(例如game.so)。 问题是,改变构建配置并不会触发库的重建;您必须更改源代码或构建脚本。因此,人们从 Debug 更改为 Release,运行应用程序,并且在不知不觉中实际上仍然链接到 Debug 版本。
然后我们尝试根据构建配置将库输出到唯一的共享对象。例如,调试版本是 gamed.so。发布版本是gamer.so。 问题是,Java代码没有构建配置的概念,那么我们怎么知道要加载哪个版本的库(是从Java做的)?
为了解决这个问题,我们通过尝试加载它们的所有可能版本的库进行 try/catch 循环。当我们找到存在的那个时,加载它! 问题是在将新配置部署到手机时不会删除旧版本的库。因此,如果您已经构建并运行了 Debug 和 Release,那么这两个库现在都在手机上!无论您首先要求哪个,它都会找到并加载。
所以无论如何,这似乎已经必须解决了,但我在网上找到的信息很少。没有什么能满足我的需要。
我的问题是:您是如何解决构建配置和库未正确重建的问题的?
【问题讨论】:
标签: android eclipse android-ndk buildconfiguration