使用android jar文件中的R资源

使用android jar文件中的R资源,android,jar,resources,Android,Jar,Resources,这已经被讨论了好几次,取得了不同的成功,但我能找到的大多数答案都是在过去的几年里 从本质上说,我有一个应用程序,它已经发展到不能与客户共享的地步。客户希望扩展应用程序,但我们不希望他们能够访问原始代码——在所有这些方面保护IP 布局、图像等。。。我们不太关心这些,只关心java代码。我可以很容易地将java代码编译成jar并分发它,但这只是答案的一半。java代码仍然引用了一大堆内部资源 我正在使用的场景是jar文件,它包含以下内容: 在Jar文件中 -MyActivity扩展活动 -MyAct

这已经被讨论了好几次,取得了不同的成功,但我能找到的大多数答案都是在过去的几年里

从本质上说,我有一个应用程序,它已经发展到不能与客户共享的地步。客户希望扩展应用程序,但我们不希望他们能够访问原始代码——在所有这些方面保护IP

布局、图像等。。。我们不太关心这些,只关心java代码。我可以很容易地将java代码编译成jar并分发它,但这只是答案的一半。java代码仍然引用了一大堆内部资源

我正在使用的场景是jar文件,它包含以下内容:

在Jar文件中 -MyActivity扩展活动 -MyActivity中的onCreate()将contentView设置为jar文件中的R引用布局

在客户端应用程序中 -MyClientActivity扩展了我的活动

运行此命令时,我在MyClientActivity上得到一个ClassNotFoundException

我注意到的事情: -如果我将jar代码附加为库,而不是jar文件,它就会工作。 -如果我在MyActivity中删除onCreate()中的R引用并重新生成jar文件,它就会工作

因此,很明显,正如前面指出的,R引用是死的/不可访问的。问题是,这显然是可行的,不是吗?如果您创建一个Android应用程序并查看自动包含的API,Android.jar文件有一个R文件,带有内部布局/字符串/等等。。。它们是其代码中的引用

正如其他人之前所说,这似乎是一种非常基本和明显的使用模式。它似乎不起作用的事实令人难以置信,足以让人相信它确实起作用,只是没有以一种明显的方式

有人真的让它工作过吗

非常感谢


-Cord Awtry

当它抛出ClassNotFoundException时找不到哪个类?奇怪的是,它是客户端项目类。。。i、 不是正在扩展的library/jar文件中的那个。你能添加一些实际的代码吗,很难想象这一切。Ridcully,谢谢你的兴趣。我做了一个简单的项目来说明这个问题。下面是一个包含两个活动的粘贴,分别来自客户端和库、库布局和异常。同样,如果将“lib”附加为库(在这种情况下,它被编译为客户机代码),则效果非常好,但是如果将lib导出为jar并尝试使用它,则会引发下面的异常。您是否已将jar文件放在客户机应用程序的libs文件夹中?您是否在客户端应用程序的AndroidManifest.xml中指定了LibClientActivity?我认为它与R类没有任何关系,因为您甚至没有在LibClientActivity中使用它。