创建android外部jar作为库,没有找到资源

时间:2014-03-12 15:45:54

标签: java android jar

当我尝试这样做时遇到了问题:

LinearLayout container = (LinearLayout)findViewById(R.id.chat_list_container);
  

android.content.res.Resources $ NotFoundException:资源ID#0x7f030001

这是我刚创建并添加到我的应用程序的外部jar的代码。

顺便说一下,当我将它用作导入模块时,这个确切的代码工作,而不是像外部jar一样使用它。

任何帮助?

谢谢!

1 个答案:

答案 0 :(得分:0)

Android不会在任何外部jar中查找资源,因为它们只包含可执行代码。

如果你想将资源作为库发布,事情会变得更加丑陋。在这种情况下,您可以像framework-res.apk一样创建资源apk。为此,创建一个没有源的android项目,放置res文件并将其添加到AndroidManifest.xml:

...
<application
    ...
    android:hasCode=false >
    ...
</application>

在这种情况下,您必须直接从res-apk中检索res id:

int resId = getPackageManager().getResourcesForApplication("res.apk.package.name")
.getIdentifier("chat_list_container" , "layout", "res.apk.package.name");

// Maybe getResources.getIdentifier() works, but I'm not sure.
LinearLayout container = (LinearLayout)findViewById(resId);

我应该提一下,运行应用程序的设备也必须安装资源apk。