【发布时间】:2013-03-12 23:24:51
【问题描述】:
我正在编写一个应用程序来连接到服务器上的数据库(AS400 服务器使用 SQL 与数据库通信)。 IBM 提供了一个 java 工具箱来访问名为 jt400android 的 jar 中的服务器。
我有一个测试功能:
protected void ConnectionTest()
{
AS400 system = new AS400("jc400");
try
{
system.connectService(AS400.RECORDACCESS);
}
catch(Exception e)
{
e.printStackTrace();
System.exit(0);
}
}
AS400 是 com.ibm.as400.access.* 中 jt400android.jar 中包含的一个函数,它处理套接字协议、连接和到 AS400 机器的身份验证。 (我采用了这种方法,因为 JDBC 显然不是一个好方法)。
代码编译得很好,没有错误或警告,但是当我在我的 AVD 上运行 apk 时,我得到了这个错误
03-12 22:44:30.300: E/dalvikvm(484): Could not find class 'com.ibm.as400.access.AS400', referenced from method jcpaper.android.jc400droid.MainActivity.ConnectionTest
我搜索了论坛并尝试了以下建议:
- 将 jar 添加到 Java Build Path > Libraries(这样做是为了使代码编译)
- 检查了 Java 构建路径上的 jar > 订单和导出
- 在 [项目文件夹]/libs 中包含 jar 的副本
每次我最终都会遇到同样的找不到类错误。
我在 Windows XP 上运行 Eclipse for mobile (Juno v1),为 Android 2.3.3 构建。
对这里发生的事情有什么建议吗?
【问题讨论】:
-
将你的外部 jar 文件添加到 android 项目的 /libs 文件夹中并尝试构建...
-
我确实尝试过,但 Davlik 开始对我大喊大叫,告诉我我失忆了。
-
它为每个类吐出这个直到它崩溃:Dx 警告:忽略不带有关联 EnclosureMethod 的匿名内部类 (com.ibm.as400.access.xxx) 的 InnerClasses 属性属性。此类可能是由不针对现代 .class 文件格式的编译器生成的。推荐的解决方案是从源代码重新编译类,使用最新的编译器并且不指定任何“-target”类型选项。忽略这个警告的后果是这个类的反射操作会错误地表明它不是一个内部类
标签: android eclipse jar ibm-midrange