Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建android外部jar作为库,没有找到资源_Java_Android_Jar - Fatal编程技术网

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);