2011-02-17 63 views
0

我需要做Android应用我的用户的LDAP认证,为我使用JNDI查询方法和需要包括JNDI.jar在我的构建路径相同,但Android是不是让我这样做,并抛出以下错误不能包括在Android项目的构建路径jndi.jar文件

[2011-02-17 15:08:33 - DHCAndroid]:DX故障处理 “的javax /命名/ AuthenticationException.class”:

不明智的或错误的核心类的使用(Java *或使用javax。*)时 没有建立一个核心库。

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

但是,您可能实际上正在尝试在核心 名称空间中定义一个类,该名称空间的来源可能来自例如 非Android虚拟机项目。这肯定不会是 的工作。至少,它会危害您的应用程序与未来版本的平台的兼容性。它也常常是有问题的合法性。

如果你真的打算建立一个核心库 - 这是只有 适合作为创建一个完整的虚拟机分配, 而不是编译应用程序的一部分 - 然后使用 “--core库”选项来抑制此错误消息。

如果你继续使用“--core库”,但事实上是构建 应用程序,然后谅解,您的应用程序仍然会失败 建设或运行,在某些时候。请为愤怒的客户 做好准备,例如,他们发现您的应用程序在他们升级其操作系统后不再起作用 。你应该责怪这个 的问题。

如果您正在使用恰巧位于核心 包中的某些代码,那么最简单的安全替代方法是将该代码重新包装为 。也就是说,将有问题的类移动到您自己的包 名称空间中。这意味着他们永远不会与系统类核心 发生冲突。 JarJar是一个可以帮助你完成这项工作的工具。 如果你发现你不能做到这一点,那么这是一个迹象表明 你在路径将最终导致疼痛,痛苦,悲伤, 和哀悼。

[2011-02-17 15:08:33 - DHCAndroid]:Dx1至误差;中止[2011-02-17 15:08:33 - DHCAndroid]转换到的Dalvik格式,错误1

只要我删除错误消失罐子失败,除去罐子是不是一个选项,请做到这一点的

问候的方式帮助, 传承加尔格

回答

0

找到另一个LDAP库,那么,一个不是在javax命名空间。你想用这个JAR做什么是不可能的。

0

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

更改行〜dx.bat 59: '设定PARAMS =' 到'set params=--core-library'

这使得Android的构建过程,以允许包括的javax pacakges。

+0

在Linux中:http://stackoverflow.com/questions/839435/android-core-library-error – 2014-09-11 08:06:13

0

像错误消息指出:

移动有关的课程到自己的包命名空间。 [...] JarJar是一个工具,可以帮助你在这个努力。

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

相关问题