繁体   English   中英

无法在Android项目构建路径中包含jndi.jar文件

[英]Not able to include jndi.jar file in android project build path

我需要在Android应用程序中对用户进行LDAP身份验证,同样,我正在使用JNDI查找方法,并且需要在构建路径中包含JNDI.jar,但是android不允许我这样做并抛出以下错误

[2011-02-17 15:08:33-DHCAndroid]:Dx处理“ javax / naming / AuthenticationException.class”时遇到麻烦:

不构建核心库时对核心类(java。*或javax。*)的不良使用或错误使用。

这通常是由于在使用IDE(例如Eclipse)时在应用程序项目中无意中包含了一个核心库文件。 如果您确定没有刻意定义核心类,那么这是最可能的解释。

但是,您实际上可能正在尝试在核心名称空间中定义一个类,例如,您可能从非Android虚拟机项目中获取了该类的源。 这肯定是行不通的。 至少,这会损害您的应用程序与平台未来版本的兼容性。 它的合法性也常常令人怀疑。

如果您确实打算构建一个核心库(仅适合于创建完整的虚拟机发行版而不是编译应用程序),请使用“ --core-library”选项来禁止显示此错误消息。

如果您继续使用“ --core-library”,但实际上是在构建应用程序,那么请注意,在某些时候您的应用程序仍将无法构建或运行。 请为生气的客户做好准备,这些客户发现例如,他们的操作系统升级后,您的应用程序将停止运行。 您将为此问题负责。

如果您合法使用的代码恰好位于核心程序包中,那么最简单的安全选择就是重新打包该代码。 也就是说,将相关的类移到您自己的包名称空间中。 这意味着它们永远不会与核心系统类冲突。 JarJar是一种可以帮助您实现这一目标的工具。 如果您发现自己无法做到这一点,则表明您所走的道路最终将导致痛苦,痛苦,悲伤和悲哀。

[2011-02-17 15:08:33-DHCAndroid]:Dx1错误; 正在中止[2011-02-17 15:08:33-DHCAndroid]转换为Dalvik格式失败,错误1

一旦我取出罐子,错误就会消失,取出罐子不是一种选择,请提供帮助的方式

问候,Smriti Garg

像错误消息说:

将相关的类移到您自己的包名称空间中。 [...] JarJar是一种可以帮助您实现这一目标的工具。

使用JarJar将JNDI代码重新打包到您自己的名称空间中。 然后依靠您的新罐子。

然后,找到另一个LDAP库,该库不在javax名称空间中。 您无法与此JAR一起做什么。

将dex参数--core-library添加到[ANDROID_SDK] \\ platform-tools \\ dx.bat。

将dx.bat的〜59行更改为:'set params ='到'set params=--core-library' -core 'set params=--core-library'

这使Android构建过程可以包含javax pacakges。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM