我用了下面这段代码Class.forName("oracle.jdbc.driver.OracleDriver");   String url ="jdbc:oracle:thin:@192.168.2.56:1521:emdb";   Connection con = DriverManager.getConnection(url,"oracle","oracle");
在android2.2中可以连oracle,但是在android3.0就不可以,android3.0就报这样的错05-21 09:36:51.876: W/System.err(816): java.lang.StringIndexOutOfBoundsException: start=0 end=131 data.length=165 index=165 length=131
05-21 09:36:51.876: W/System.err(816):  at java.lang.String.getBytes(String.java:860)
05-21 09:36:51.876: W/System.err(816):  at oracle.net.ns.ConnectPacket.<init>(Unknown Source)
05-21 09:36:51.876: W/System.err(816):  at oracle.net.ns.NSProtocol.connect(Unknown Source)
05-21 09:36:51.876: W/System.err(816):  at oracle.jdbc.ttc7.TTC7Protocol.connect(TTC7Protocol.java:1774)
05-21 09:36:51.876: W/System.err(816):  at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:215)
05-21 09:36:51.885: W/System.err(816):  at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:362)
05-21 09:36:51.885: W/System.err(816):  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:536)
05-21 09:36:51.885: W/System.err(816):  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:328)
05-21 09:36:51.885: W/System.err(816):  at java.sql.DriverManager.getConnection(DriverManager.java:180)
05-21 09:36:51.885: W/System.err(816):  at java.sql.DriverManager.getConnection(DriverManager.java:214)
05-21 09:36:51.896: W/System.err(816):  at com.zai.util.ChartDAO.HoursPowerCurveList(ChartDAO.java:57)
05-21 09:36:51.896: W/System.err(816):  at com.zai.main.ZnlyMainActivity.onCreate(ZnlyMainActivity.java:43)
05-21 09:36:51.896: W/System.err(816):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
05-21 09:36:51.906: W/System.err(816):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
05-21 09:36:51.906: W/System.err(816):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
05-21 09:36:51.906: W/System.err(816):  at android.app.ActivityThread.access$1500(ActivityThread.java:123)
05-21 09:36:51.906: W/System.err(816):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993)
05-21 09:36:51.906: W/System.err(816):  at android.os.Handler.dispatchMessage(Handler.java:99)

解决方案 »

  1.   

    我不明白你为什么要用Android连接Orcale,就Android那点数据,自带的SQlite不行吗?难道你指望你的手机上能装上Oracle数据库。。
      

  2.   

    1楼傻, 难道oracle 只能装本机才能用Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url ="jdbc:oracle:thin:@10.117.0.5:1521:check"; 
    String user = "yu_orc";
    String pwd = "asdf1234*";
    Connection con = DriverManager.getConnection(url, user, pwd);我也是这么写的哦,不过版本是2.3.6
    ---3.0 市面上用的很少,问题很多。建议去google 看下3.0 版本的release
      

  3.   

    根据错误提示:是数组越界的问题,出错位置:ChartDAO.java文件第57行,建议发ChartDAO.java码上来看看
      

  4.   

    如果不涉及服务器端代码的开发,楼主还是不要用jdbc,直接用andriod自带的sqlite就可以了,理论上使用jdbc的话不存在前端操作系统版本的问题。。
      

  5.   

    我连接的是 SqlServer 也出现和你一样的错误哦,你解决没,我不知道怎么弄
      

  6.   

    就是这行报的错,Connection con = DriverManager.getConnection(url,"oracle","oracle");
      

  7.   

    关键是我的数据太大,sqlite不行
      

  8.   

    LZ可以用 JSON呀,ANDROID再去读JSON内容,
    给我点分吧,THANKS