Java 创建android外部jar作为库,没有找到资源
我尝试这样做时遇到了一个问题:Java 创建android外部jar作为库,没有找到资源,java,android,jar,Java,Android,Jar,我尝试这样做时遇到了一个问题: LinearLayout container = (LinearLayout)findViewById(R.id.chat_list_container); android.content.res.Resources$NotFoundException:资源ID#0x7f030001 这是我刚刚创建并添加到应用程序中的外部jar代码 顺便说一句,当我使用它作为导入模块,而不是像外部jar那样使用它时,这段代码可以正常工作 有什么帮助吗 谢谢 Android不会在
LinearLayout container = (LinearLayout)findViewById(R.id.chat_list_container);
android.content.res.Resources$NotFoundException:资源ID#0x7f030001
这是我刚刚创建并添加到应用程序中的外部jar代码
顺便说一句,当我使用它作为导入模块,而不是像外部jar那样使用它时,这段代码可以正常工作
有什么帮助吗
谢谢 Android不会在任何外部jar中查找资源,因为它们只包含可执行代码 如果您还想将资源发布为库,事情会变得更糟。在本例中,您可以像framework-res.apk一样创建资源apk。为此,创建一个无源的android项目,放置res文件并将其添加到AndroidManifest.xml中:
...
<application
...
android:hasCode=false >
...
</application>
我应该提到,运行应用程序的设备还必须安装资源apk。您是否也在jar中打包资源?你应该将其中一个项目作为图书馆项目,并在另一个项目中引用相同的内容。如果是这样的话。是的,我想我添加了资源,我如何确定?在jar中,我可以看到R文件,其中包含一些关于外部资源ID的内容。我把它作为库和参考..你不能将资源打包到jar中。那么,你的意思是我不能显示一个对话框,例如,带有一些布局的对话框吗?是的,这就是我的意思。请注意,android库项目——您在项目属性中设置为库的项目——实际上已完全添加到使用它们的主项目中(源代码和资源)。这就是使用外部jar文件和将项目设置为库之间的区别。
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);