为什么当我调试带有mysql数据库的app gluon时无法在手机中打开?

时间:2019-01-31 14:06:21

标签: mysql gluon gluon-mobile javafxports

当我在台式机Gluon上运行自己的应用程序时,它运行良好,但是当我将调试器用于手机Sony experia时,将显示登录UI,但是当我输入用户名和密码时,我无法访问主屏幕。我需要在数据库连接和build.gradle中写什么?

我试图在build.gradle中更改mysql版本 编译 mysql:mysql-connector-java:8.0.13 并编译 mysql:mysql-connector-java:5.1.46

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'org.javafxports:jfxmobile-plugin:1.3.16'
}
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
jcenter()
maven {
    url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}

 mainClassName = 'com.crm.CRM'

dependencies {
compile 'com.gluonhq:charm:5.0.2'
compile 'mysql:mysql-connector-java:8.0.13'
compile 'com.jcraft:jsch:0.1.54'
}

jfxmobile {
downConfig {
    version = '3.8.6'
    // Do not edit the line below. Use Gluon Mobile Settings in your 
  project context menu instead
    plugins 'display', 'lifecycle', 'statusbar', 'storage'
}
android {
    javafxportsVersion = '8.60.11'
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'  
        exclude 'META-INF/rxjava.properties'
        exclude 'META-INF/spring.schemas'
        exclude 'META-INF/INDEX.LIST'
    }   
    //        compileSdkVersio=28
    manifest = 'src/android/AndroidManifest.xml'
}
ios {
    infoPList = file('src/ios/Default-Info.plist')
    forceLinkClasses = [
            'com.gluonhq.**.*',
            'javax.annotations.**.*',
            'javax.inject.**.*',
            'javax.json.**.*',
            'org.glassfish.json.**.*'
    ]
}
}

这是connect db的代码:

 public static Connection getConnection() {
 try {
  //Your Database usrl using String,ensure it is correct             
 Class.forName("com.mysql.jdbc.Driver");
 Connection con = 
 DriverManager.getConnection("jdbc:mysql://192.168.43.13:3306/crmywa? 
 useUnicode=yes&characterEncoding=UTF-8", "root", "");
        return con;
 } catch (Exception ex) {

 Logger.getLogger(dbmobo.class.getName()).log(Level.SEVERE, null, ex);
 }
    return null;
}

enter image description here

编辑

在我检查了结果adb logcat之后,我得到了这个结果:

01-31 18:51:01.399 17374 17407 W System.err: Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 
01-31 18:51:01.403 17374 17407 W System.err: Exception in Application start method 
01-31 18:51:01.405 17374 17407 I System.out:QuantumRenderer: shutdown 
01-31 18:51:01.406 17374 17402 W System.err: java.lang.reflect.InvocationTargetException 
01-31 18:51:01.406 17374 17402 W System.err:    at java.lang.reflect.Method.invoke(Native Method) 
01-31 18:51:01.406 17374 17402 W System.err:    at javafxports.android.DalvikLauncher$1.run(DalvikLauncher.java:188)
01-31 18:51:01.406 17374 17402 W System.err:    at java.lang.Thread.run(Thread.java:761) 
01-31 18:51:01.406   364  3793 I BufferQueueProducer: [SurfaceView -com.crm/javafxports.android.FXActivity](this:0x7549311800,id:2793,api:1,p:17374,c:364) new GraphicBuffer needed 
01-31 18:51:01.406 17374 17402 W System.err: Caused by: java.lang.RuntimeException: Exception in Application start method 
01-31 18:51:01.406 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
01-31 18:51:01.406 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$138(LauncherImpl.java:182)
01-31 18:51:01.406 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$1(LauncherImpl.java)
01-31 18:51:01.407 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source)
01-31 18:51:01.407 17374 17402 W System.err:    ... 1 more 
01-31 18:51:01.407 17374 17402 W System.err: Caused by: javafx.fxml.LoadException: 
01-31 18:51:01.407 17374 17402 W System.err: file:/data/app/com.crm-1/base.apk!/fxml/login.fxml:21
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) 
01-31 18:51:01.407 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) 
01-31 18:51:01.407 17374 17402 W System.err:    at com.crm.CRM.start(CRM.java:15) 
01-31 18:51:01.407 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$145(LauncherImpl.java:863)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl.access$lambda$8(LauncherImpl.java)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$158(PlatformImpl.java:326)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$6(PlatformImpl.java)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$18(PlatformImpl.java)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source)
01-31 18:51:01.408 17374 17402 W System.err:    at java.security.AccessController.doPrivileged(AccessController.java:57)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl.access$lambda$5(PlatformImpl.java)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:93)
01-31 18:51:01.408 17374 17402 W System.err:    at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:52)
01-31 18:51:01.408 17374 17402 W System.err:    ... 1 more 
01-31 18:51:01.409 17374 17402 W System.err: Caused by:java.lang.UnsupportedOperationException 
01-31 18:51:01.409 17374 17402 W System.err:    at java.util.regex.Matcher.group(Matcher.java:383)
01-31 18:51:01.409 17374 17402 W System.err:    at com.mysql.cj.conf.ConnectionUrlParser.isConnectionStringSupported(ConnectionUrlParser.java:152)
01-31 18:51:01.409 17374 17402 W System.err:    at com.mysql.cj.conf.ConnectionUrl.acceptsUrl(ConnectionUrl.java:258)
01-31 18:51:01.409 17374 17402 W System.err:    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:195)
01-31 18:51:01.409 17374 17402 W System.err:    at java.sql.DriverManager.getConnection(DriverManager.java:569) 
01-31 18:51:01.409 17374 17402 W System.err:    at java.sql.DriverManager.getConnection(DriverManager.java:219) 
01-31 18:51:01.409 17374 17402 W System.err:    at com.crm.dbmobo.getConnection(dbmobo.java:17) 
01-31 18:51:01.409 17374 17402 W System.err:    at com.crm.LoginController.<init>(LoginController.java:78) 
01-31 18:51:01.409 17374 17402 W System.err:    at java.lang.Class.newInstance(Native Method) 
01-31 18:51:01.409 17374 17402 W System.err:    at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:45) 
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707) 
01-31 18:51:01.409 17374 17402 W System.err:    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) 
01-31 18:51:01.409 17374 17402 W System.err:    ... 24 more 
01-31 18:51:01.411   364  3793 I BufferQueueProducer: [SurfaceView -com.crm/javafxports.android.FXActivity](this:0x7549311800,id:2793,api:1,p:17374,c:364) new GraphicBuffer needed

enter image description here

1 个答案:

答案 0 :(得分:0)

应用程序的问题未在手机上打开,我在mysql上通过以下语法解决了该问题:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

那么您最多将新用户添加到数据库中

效果很好

我从此链接中获取了它: HOST 192.168.--- not allowed to connect Mysql server

和我的build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.16'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

mainClassName = 'com.crm.CRM'

dependencies {
    compile 'mysql:mysql-connector-java:3.1.12'
}

jfxmobile {
    downConfig {
        version = '3.8.6'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        plugins 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        javafxportsVersion = '8.60.11'
        packagingOptions {
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/NOTICE.txt'  
            exclude 'META-INF/rxjava.properties'
            exclude 'META-INF/spring.schemas'
            exclude 'META-INF/INDEX.LIST'
        }   
        //        compileSdkVersio=28
        manifest = 'src/android/AndroidManifest.xml'
    }
    ios {
        infoPList = file('src/ios/Default-Info.plist')
        forceLinkClasses = [
                'com.gluonhq.**.*',
                'javax.annotations.**.*',
                'javax.inject.**.*',
                'javax.json.**.*',
                'org.glassfish.json.**.*'
        ]
    }
}