2016-05-14 46 views
0

我从两个位置开始项目工作,现在我在家工作,从Git中取出项目。jfxmobile插件不添加android.jar和javafxports jar

在工作中,我看到IntelliJ中的外部库内部的android.jar和jfx.jar(不知道确切的名称),并且类可用。然而,在家里,jar不可见,android类和JFXActivity类不会被识别为结果。

我现在不是为什么Gradle不加载它,build.gradle是一样的。

的build.gradle:

buildscript { 
    repositories { 
     jcenter() 
     maven { 
      url 'http://xxxx.com:8080/artifactory/plugins-release' 
     } 
    } 
    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.0.8' 
     classpath "org.jfrog.buildinfo:build-info-extractor-gradle:+" 
    } 
} 

apply plugin: 'com.jfrog.artifactory' 
apply plugin: 'org.javafxports.jfxmobile' 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      maven = true 
     } 
    } 
    resolve { 
     repository { 
      repoKey = 'libs-release' 
      maven = true 
     } 
    } 
} 

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

mainClassName = 'com.xxxx.scan.application.gluon.MainApplication' 

dependencies { 
    compile 'com.gluonhq:charm:2.1.1' 
    compile 'com.airhacks:afterburner.mfx:1.6.2' 
    androidRuntime 'com.gluonhq:charm-android:2.1.1' 
    iosRuntime 'com.gluonhq:charm-ios:2.1.1' 
    desktopRuntime 'com.gluonhq:charm-desktop:2.1.1' 

    compile(group: 'com.essers.pxl2016', name: 'scan-server-definition', version: '0.0.1-SNAPSHOT') 
    compile(group: 'com.essers.pxl2016', name: 'client', version: '1.0-SNAPSHOT') 
    compile(group: 'com.essers.pxl2016', name: 'configuration', version: '1.0-SNAPSHOT') 
    compile('com.google.code.gson:gson:2.2.4') 
    testCompile "junit:junit:4.12" 
} 

task print << { 
    println("$System.env.ANDROID_HOME") 
} 

jfxmobile { 
    android { 
     androidSdk = "$System.env.ANDROID_HOME" 
     manifest = 'src/android/AndroidManifest.xml' 
     compileSdkVersion = 21 
    } 
    ios { 
     infoPList = file('src/ios/Default-Info.plist') 
     forceLinkClasses = [ 
       'com.xxxx.scan.application.gluon.**.*', 
       'com.gluonhq.**.*', 
       'io.datafx.**.*', 
       'javax.annotations.**.*', 
       'javax.inject.**.*', 
       'javax.json.**.*', 
       'org.glassfish.json.**.*' 
     ] 
    } 
} 

test { 
    exclude 'com/xxxx/scan/application/gluon/**' 
} 
+0

您是否定义了'ANDROID_HOME'?你下载了Android SDK吗?你需要在每台机器上完成它。当你运行'gradlew --info android'时,你会得到什么错误? –

+0

您好José,我在系统环境变量中定义了ANDROID_HOME,我知道Gradle可以找到它们,因为我使用println(“$ System.env.ANDROID_HOME”)执行任务。 gradlew --info android显示没有错误,并以构建成功结束,它显示$ System.env.ANDROID_HOME已解析,我看到它添加了jfxrt.jar。 AndroidInstall也可以运行,apk可以与Android特定的功能一起使用。唯一不起作用的是IntelliJ不会将android.jar和jfxdvk.jar添加到外部库。我想我可以从.gradle缓存手​​动添加依赖关系。 – progonkpa

+0

如果您构建并运行应用程序,_definitely_这些依赖关系就在那里。在IntelliJ中,也许你需要点击Gradle面板上的刷新按钮来更新依赖关系列表。在外部库下,您应该看到:android.jar,jdk1.8,魅力依赖项,javax-json,jfxdvk,加力燃烧器,robovm依赖项和您自己的。 –

回答

0

你引用了Android SDK在这条线:

androidSdk = "$System.env.ANDROID_HOME" 

根据Gluon Documentation确保SDK可以在该位置找到,或引用它:

你必须让jfxmobile插件知道在哪里寻找 Androi使用下列方法之一d SDK安装目录:

  • 在的build.gradle下jfxmobile.android限定的androidSdk属性

  • 一个属性的gradle具有名称ANDROID_HOME:在定义〜/ .gradle/gradle.properties或通过传递-PANDROID_HOME到 gradle这个 构建

  • 与名称的系统环境变量ANDROID_HOME

jfxmobile插件将首先尝试查看androidSdk属性是否已设置 。如果没有,它会查找ANDROID_HOME gradle属性 ,最后使用ANDROID_HOME系统环境变量。

+0

我验证了Gradle可以通过执行println(“$ System.env.ANDROID_HOME”)的任务找到“$ System.env.ANDROID_HOME”。输出是正确的。 – progonkpa

0

我安装了IntelliJ 2016.1.2社区版,我可以确认所有依赖加载良好,包括android.jar,jfxdvk.jar和robovm jar。出于某种原因,IntelliJ 15.0.6终极版失败了。