我正在开发一些可重用的Android代码,我想分发给其他开发人员,以便在他们自己的应用程序中使用。该代码有一些资源依赖(布局,xml和png绘图),我希望能够包括和引用在一个单独的包(Jar文件)。
这是可能的吗?如果是这样的话,最好的方法是什么?
发布于 2010-01-03 22:10:23
我没有给你任何乐观的消息。一般来说,您不能像预期的那样容易地分发您自己的包。主要问题是自动生成的R文件。你可能对它做了一些参考--你有你的布局和绘图。你的库的用户将有他自己的R文件-包含他的资源的ids,而不是你的库提供的那些。
在可绘制资源的情况下,你可以用经典的方式阅读它们,而不需要R文件。但据我所知,您不能从外部xml文件膨胀布局。
所以这里最丑陋的技巧是将你的库和你所有的资源一起分发,用户必须将其复制到他的"res“文件夹中。老实说,你的问题没有好的解决方案。抱歉的。致以问候!
发布于 2012-09-27 19:51:27
您可以使用android方法动态获取资源id。
int preferences = context.getResources().getIdentifier("preferences", "xml", context.getPackageName());
稍后,必须将您的资源包含(复制)到新项目中。
发布于 2015-04-10 23:22:22
我使用的是user558185解决方案,但这里有一个更简单的方法。如果您资源位于库项目中(例如,针对Cordova插件),则可以使用context.getResources().getIdentifier(name, className, context.getPackageName());
获取资源
当库项目资源R文件没有正确生成,并且R packageName与库项目所需的packageName不匹配时,就会发生这种情况。
用法与user558185 answer相同,但它使用的是原生Android方法。
https://stackoverflow.com/questions/1995004
复制相似问题