在过去的几天里,我一直在为构建我们的Android应用程序的多个配置而努力让一个系统启动和运行。我能够很好地构建库;我遇到的问题通常来自于在更改构建配置时保持这些库的更新。
我需要一个系统,它在很大程度上是完全自动化的:用户只需更改构建配置,一切就可以工作了!
如何解决构建配置和库未正确重建的问题?
我尝试了很多不同的方法来解决这些问题,但它们似乎都以我无法控制的问题而告终。
最初,我们只是输出一个具有相同名称的共享对象文件,而不考虑构建配置(例如。game.so)。问题是,更改构建配置并不会触发要重新构建的库;您必须对源代码或构建脚本进行更改。所以人们会从Debug到发布,运行应用程序,并且不知不觉地仍然链接到Debug版本。
因此,我们尝试将库输出到基于构建配置的唯一共享对象。例如,调试版本是gamed.so。发布版本是gamer.so。问题是,Java代码没有构建配置的概念,那么我们如何知道要加载哪个版本的库(这是从Java完成的)?
为了解决这个问题,我们进行了一次尝试/捕捉,遍历了试图加载它们的库的所有可能版本。当我们找到存在的,加载它!问题是--在将新配置部署到电话时,库的旧版本不会被删除。因此,如果您已经构建并运行了调试和发行版,那么这两个库现在都在打电话了!只要你先要一个,它就会找到并装载。
无论如何,这似乎是已经解决的问题,但我在网上发现的信息很少。没有什么能满足我的需要。
我的问题是:如何解决构建配置和库未正确重建的问题?
发布于 2012-10-27 22:28:51
这其实很奇怪。我一直看到install -r刷新/data/data/app.pack.age/lib目录。你用哪种设备进行开发?
https://stackoverflow.com/questions/13041322
复制相似问题