Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的JavaFX-Gradle找不到JDK_Java_Android_Gradle_Javafx_Javafxports - Fatal编程技术网

Android上的JavaFX-Gradle找不到JDK

Android上的JavaFX-Gradle找不到JDK,java,android,gradle,javafx,javafxports,Java,Android,Gradle,Javafx,Javafxports,我试图通过使用JavaFXAndroid移植团队提供的Dalvik JavaFX Android SDK,让JavaFX应用程序在Android上运行。因此,我下载了JavaFX Android移植团队提供的示例,并一直尝试在Android上运行其中一个示例,但没有取得多大成功 使用Eclipse和Gradle插件,我导入了HelloWorldFxml示例项目。然后我按照自述文件告诉我的那样在项目上运行Gradle任务。/gradlew androidInstall。但不幸的是,任务无法执行,因

我试图通过使用JavaFXAndroid移植团队提供的Dalvik JavaFX Android SDK,让JavaFX应用程序在Android上运行。因此,我下载了JavaFX Android移植团队提供的示例,并一直尝试在Android上运行其中一个示例,但没有取得多大成功

使用Eclipse和Gradle插件,我导入了HelloWorldFxml示例项目。然后我按照自述文件告诉我的那样在项目上运行Gradle任务。/gradlew androidInstall。但不幸的是,任务无法执行,因为Gradle无法找到我的JDK:

资料来源:

尽管我的JAVA_HOME系统变量设置正确,而且我以前没有遇到过问题:

资料来源:

有谁能提供一些关于我如何解决这个问题的见解

版本:Eclipse Luna Service Release 1a 4.4.1、Gradle 2.2、dalvik-sdk-8u40-ea3、Android sdk构建工具21.1.2、Android sdk工具24.0.2

编辑:在示例项目上运行gradlew AndroidStall时的控制台输出:


即使错误消息没有指定它,也许它正在您的路径中寻找javac?如果不在那里,请尝试添加;%JAVA_HOME%\bin到PATH变量的末尾,然后重新启动Eclipse,我遇到了一个问题,运行进程之前没有获得对环境变量的更改。

基本说明

自dalvik-sdk-8u40-ea3发布以来,JavaFXPorts团队在很短的时间内发布了几个新版本,所有这些版本都简化了将JavaFX应用程序移植到Android或iOS的所有过程

他们发布了dalvik-sdk-8u40-ea4,并宣布发布一个新的插件,该插件将把从JavaFX创建移动应用程序的步骤简化到最低限度

虽然这个答案可能对OP的特定问题没有帮助,但肯定会对他和其他人有所帮助,因为一切都非常简单

新方法

有了这个插件,就有了一种为Android创建HelloWorldFxml应用程序的新方法

新的javafxmobile插件允许您使用单个“build.gradle”文件生成apk

您可以找到其他基本示例,并下载存储库

您不需要编辑一行,只需在命令行上,在示例根目录下,在连接设备的情况下键入以下内容:

gradlew androidInstall
对于以前的版本,您需要安装JDK8u40和Android SDK。虽然不需要dalvik sdk,但它是由插件检索的


请注意,您可以从IDE中打开这些示例,这样您就可以修改它们,并在本地运行它们,或者为您的设备重新构建apk。

检查Eclipse中的Java设置:

Window -> Preferences
Java -> Installed JREs
确保您的JDK1.8已在此处列出。如果不是,请使用add。。。按钮

Eclipse了解JDK后,请确保项目的设置使用该JDK作为编译器,并且Gradle插件应该能够从中获取设置

在紧急情况下,您还应该能够从命令行运行Gradle,而且它应该可以正常工作,因为您已经设置了%JAVA\u HOME%变量。

也有这个问题。 我的职责:

-视窗7 -Dalvik SDK Dalvik-SDK-8u60-b5 -JDK 8最新版本8_60/重要提示:JDK不是JRE -我还尝试了Dalvik SDK下载提供的HelloAndroid项目

所以我执行命令行:gradlew installDebug 我的问题几乎是一样的。 找不到JDK。请确保存在JAVA\u HOME或JAVA8\u HOME系统变量

一, 创造了这些机会。正如本文所述: 所以为了确保一切,我用相同的路径创建了这两个。因为我不知道gradle到底用的是哪一个

二, 这真的是帮了我的忙。在StackOverflow中也找到了这个。 在android{..}文件下面的build.gradle中写下这一行:

然后再次执行相同的命令行,它对我有效。
我想只有2个。steps是解决方案,因为我想gradle不会在jdk有直接路径的情况下查找变量

“不幸的是,这里没有运气。我不确定这是否回答了这个问题——也许你可以澄清一下你为什么认为它会回答这个问题?”乔尔塔编辑了我的回答。以前版本中的许多问题都通过这个新插件解决了,因为我已经对自己进行了测试。这个新方法听起来就像我正在做的,只是下载样本,然后在上面运行gradlew androidinstall任务。不过它现在可以工作了,但只在Eclipse中工作,没有像我在另一篇评论中提到的那样使用命令行。接下来我想做的是创建我自己的JavaFX Gradle项目;我应该把我的代码复制到一个示例项目中吗?或者我该怎么做?是的,我对这些东西不是很有经验,也没有找到太多的文档或教程。你能构建/安装apk吗?如果从Eclipse运行,则运行的是桌面版本。您需要从命令行执行此操作,以便可以构建和安装
主键。完成此操作后,您可以创建自己的示例。首先,我建议您修改其中一个的代码,然后自己尝试。这取决于IDE的Gradle插件…我连接手机,运行androidinstall任务,然后应用程序就会安装到手机上。这等同于构建/安装apk吗?你是说JRE,对吗?我认为您不能在Eclipse中将JDK列在已安装的JRE下。但无论如何,今天Gradle接受了我的JAVA_HOME变量,我可以在Eclipse中成功地执行任务,尽管我从昨天起就没有更改过它。但是如果我试图从命令行执行相同的任务,我必须删除;%JAVA\u HOME%\bin部分,否则它会声明JAVA\u HOME设置为无效目录。我已经在Eclipse中安装的JRE下列出了我的JDK,所以我相信这是可以做到的=@请仔细阅读,这是一个完整的答案,不是一个新问题,因为它提供了一个对作者有效的解决方案。洛伦佐,你的回答措辞让它听起来很像一个“我也有这个问题”的评论,而你的答案被标记并显示在低质量的队列中。请考虑重新措辞你的答案,使它更直接地解决OP的问题。e、 g.我不是也有这个问题,而是这样解决的,比如说你可以通过这样做来解决你的问题谢谢@runDOSrun,因为这应该是一个答案,而不是一个问题。我在自己的情况下解决了这个问题。
  retrolambda {
     jdk 'C:/Program Files/Java/jdk1.8.0_60'              //<--your JDK-path
  }