访问引用项目引用的库的资源

时间:2012-10-10 14:46:17

标签: android unit-testing android-resources android-library

我有一个测试项目Y的测试项目X.项目Y有库Z作为参考。库Z有一个原始资源R1我试图打开,但我一直在找不到资源。原始资源位于库中的res / raw文件夹中。

我尝试使用相关的packageManager打开openRawResource,但似乎没有帮助。 任何的想法?我的资源分配是否有任何逻辑错误?

没有工作:

PackageManager pmMgr = getInstrumentation().getTargetContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.z.raw.R1);

既没有

PackageManager pmMgr = getInstrumentation().getContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.z.raw.R1);

P.S。 我验证了R1被包含在res / raw下的引用项目(Y)的.apk中。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。 虽然自我提问以来只过了一天......我几天来一直在努力解决这个问题。

解决方案非常愚蠢。 较新版本的ADT要求您使用项目库来调用资源,即使它们来自引用的库。例如。工作代码示例是:

PackageManager pmMgr = getInstrumentation().getTargetContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.Y.raw.R1);

唯一的变化是在最后一行,Y而不是Z。