0

我在 android 中为 SQLConnection 使用以下代码:

public void queryResultSet(String CommandSQL) throws ClassNotFoundException, java.sql.SQLException
    {

        ResultSet rs;
        Connection conn = null;

            Toast msg1 = Toast.makeText(getBaseContext(),
                    "Name = " + CommandSQL, Toast.LENGTH_LONG);
            msg1.show();

             Class.forName("net.sourceforge.jtds.jdbc.Driver");
             String username="14Graficali\\Administrator";
             String ConnUrl="jdbc:jtds:sqlserver://14GRAFICALI\\MSSQLSERVER2008;DatabaseName=DVDKiosk;user=14Graficali\\Administrator;Instance=SQLExpress";
             conn = DriverManager.getConnection(ConnUrl);

            Statement st=conn.createStatement();
            rs=st.executeQuery(CommandSQL);
            while(rs.next())
            {

                Toast msg2 = Toast.makeText(getBaseContext(),
                        "Name = " + rs.getString("UserName"), Toast.LENGTH_LONG);
                msg2.show();
            }

    }

我已经包括net.sourceforge.jtds.jdbc.Driver了,我们可以在下面看到:

在此处输入图像描述

堆栈跟踪:

08-20 10:57:42.087: W/System.err(400): java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
08-20 10:57:42.087: W/System.err(400):  at java.lang.Class.classForName(Native Method)
08-20 10:57:42.087: W/System.err(400):  at java.lang.Class.forName(Class.java:234)
08-20 10:57:42.087: W/System.err(400):  at java.lang.Class.forName(Class.java:181)
08-20 10:57:42.087: W/System.err(400):  at com.example.registrationapp.Login.queryResultSet(Login.java:93)
08-20 10:57:42.087: W/System.err(400):  at com.example.registrationapp.Login$1.onClick(Login.java:126)
08-20 10:57:42.087: W/System.err(400):  at android.view.View.performClick(View.java:2485)
08-20 10:57:42.087: W/System.err(400):  at android.view.View$PerformClick.run(View.java:9080)
08-20 10:57:42.087: W/System.err(400):  at android.os.Handler.handleCallback(Handler.java:587)
08-20 10:57:42.087: W/System.err(400):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-20 10:57:42.098: W/System.err(400):  at android.os.Looper.loop(Looper.java:123)
08-20 10:57:42.098: W/System.err(400):  at android.app.ActivityThread.main(ActivityThread.java:3683)
08-20 10:57:42.098: W/System.err(400):  at java.lang.reflect.Method.invokeNative(Native Method)
08-20 10:57:42.098: W/System.err(400):  at java.lang.reflect.Method.invoke(Method.java:507)
08-20 10:57:42.098: W/System.err(400):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-20 10:57:42.098: W/System.err(400):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-20 10:57:42.098: W/System.err(400):  at dalvik.system.NativeStart.main(Native Method)
08-20 10:57:42.098: W/System.err(400): Caused by: java.lang.NoClassDefFoundError: net.sourceforge.jtds.jdbc.Driver
08-20 10:57:42.107: W/System.err(400):  ... 16 more
08-20 10:57:42.107: W/System.err(400): Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver in loader dalvik.system.PathClassLoader[/data/app/com.example.registrationapp-1.apk]
08-20 10:57:42.107: W/System.err(400):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
08-20 10:57:42.107: W/System.err(400):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
08-20 10:57:42.107: W/System.err(400):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

请帮我。

4

3 回答 3

2

如果您已经添加了 jtds-1.2.5 驱动程序,很好。否则:

右键单击项目 > 属性 > 库选项卡通过单击“添加外部 JAR”添加 jtds-1.2.5.jar 文件

接下来,在 Order and Export 选项卡(在 Java Build Path 窗口中的 Libraries 旁边)选中 jtds-1.2.5.jar(以及您可能拥有的任何其他外部 jar)的复选框。

这将使用 .apk 文件导出包含驱动程序的 .jar。

于 2013-08-20T09:22:40.277 回答
0

右键项目-属性-java构建路径-排序和导出-勾选Android私有库和你添加的所有库

于 2013-10-18T12:04:49.523 回答
0

如果您使用 ProGuard,那么您的类可能会被它丢弃,因为它仅与反射一起使用。如果你不这样做,Android 仍然可能由于某些原因无法加载类。在安装包期间查看 LogCat。

于 2013-08-20T05:55:19.587 回答