2017-04-24 120 views
0

我知道有一些人在这里有关于此问题。我已阅读了其中的一些,但没有任何解决方案来帮助我。错误:没有合适的驱动程序jdbc在android studio

我已经包含在我的应用程序的build.gradle库:

apply plugin: 'com.android.application' 

android { 
... 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.google.android.gms:play-services:8.4.0' 
    compile 'com.android.support:multidex:1.0.1' 
    compile 'com.microsoft.azure.android:azure-storage-android:[email protected]' 
    compile 'com.android.support:design:23.1.1' 
    compile files('libs/mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar') 
} 

我在该项目中的build.gradle类路径:

buildscript { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.1' 
     classpath 'com.google.gms:google-services:1.3.0-beta1' 
     classpath 'mysql:mysql-connector-java:5.0.8' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 

} 

我在库文件夹下的lib:

[My lib folder]

,我已经implimented让司机在我的计划:

String hostName = "whereyaatserver.database.windows.net"; 
String dbName = "whereyaatdatabase"; 
String user = "Capstone_Admin"; 
String password = "Swde4321!"; 
String url = "jdbc:sqlserver://whereyaatserver.database.windows.net:1433;database=whereyaatdatabase;[email protected];password=Swde4321!;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"; 
     Connection connection = null; 

public Mapping() throws SQLException { 
} 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_mapping); 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     connection = DriverManager.getConnection(url); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 

,我添加了一个变量CLASSPATH环境变量点到我的lib文件夹:

[my CLASSPATH variable]

我不能完全肯定我要去的地方错了。我明显在某种原因,但我不确定我是否犯了一个小错误,或者以完全错误的方式进行。任何指导将不胜感激。

+0

好,最好的答案是“不要在Android应用程序中使用JDBC”。你的'CLASSPATH'没有意义,因为那是Windows,而你正在编写一个在Android上运行的应用程序。而你的'url'似乎是用于SQL Server的,而你的驱动程序似乎是用于MySQL的。 – CommonsWare

+0

如果不使用sql,使用Azure的android数据库的最佳方式是什么? – Ontarianmm

+0

我不能说Azure。除此之外,通常我们在与数据库交谈的服务器上使用某种形式的Web服务,移动应用程序与Web服务交谈。 – CommonsWare

回答

0

由于CommonsWare的评论,我已经解决了它。问题是我导入了mysql库而不是sql库。

这里是新的依赖:

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:support-v4:23.1.1' 
    compile 'com.google.android.gms:play-services:8.4.0' 
    compile 'com.android.support:multidex:1.0.1' 
    compile 'com.microsoft.azure.android:azure-storage-android:[email protected]' 
    compile 'com.android.support:design:23.1.1' // compile files('libs/mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar') 
    compile files('libs/sqljdbc_6.0/enu/jre7/sqljdbc41.jar') 
} 

而新的lib文件夹:

[New Lib folder]

只是把这个在这里情况下别人是愚蠢的,因为我

相关问题