我了解任何给定命名空间(即 com.test.android 与 com.test2.android)内的所有资源都将分配唯一的资源 ID。现在,如果我在 com.test2.android 中调用 com.test.android,我发现两个不同的资源被分配了相同的资源 id,因此我的 getResources().openRawResrouce() 得到了错误的文件。
所以我编译了一个包含 res/raw/test.zip 作为我的 SDK 的 jar 文件。然后我将这个 sdk.jar 包含在一个单独的项目中,并尝试通过 getInstance().getContext().getResources().openRawResource(com.mycompany.android.R.raw.test) 访问这个 res/raw/test.zip
然而它返回了错误的文件,即 com.mycompany.res/drawble-hdpi/lc_launcher.png。然后我发现这是因为 com.mycompany.android.R.raw.test(res/raw file in my SDK) 具有与 com.example.resourcetest.R.raw.ic_launcher 相同的 ID
什么是适当的修复?
谢谢,
李