android - gradle项目中输入流不能为空异常

标签 android image gradle exception javafx

我有MainClass

public class MainClass extends Application {

    @Override
        public void start(Stage primaryStage) {

            try{
                Image img = new Image(getClass().getResourceAsStream(".\\build\\resources\\main\\img\\h1.jpg"));
                System.out.println("ok");
            }
            catch(Exception ex){
                System.out.println(ex.getMessage());
            }
        }

    public static void main(String[] args) {
        launch(args);
    }
}

我的图像在\build\resources\main\img\h1.jpg目录中

我的项目文件:

my project files

当我运行项目时,它给出Input流不能为null异常。

最佳答案

资源路径不由\分隔。此外,它们从资源根目录开始。在这种情况下,假设您的IDE在运行时正确地将资源包含在类路径中,那么"/img/h1.jpg"路径应该可以解决问题。
getResource(AsStream)不通过文件路径访问数据;数据可能根本无法作为文件使用,但可以作为JAR文件中的条目使用。如果您需要引用类路径中未包含的文件,请使用File的功能转换为URI或使用FileInputStream:

new Image(new File(".\\build\\resources\\main\\img\\h1.jpg").toURI().toString())

关于android - gradle项目中输入流不能为空异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60843847/

相关文章:

android - 如何从元素中获取数据

android - 如何以编程方式修改 Android Pie 9.0 中的 AOSP SystemUI?

kotlin - 为什么 Gradle 强制使用 Kotlin 版本,以及如何修复它?

Android Studio - 向 Gradle 添加库/代码搜索路径?

HTML/CSS 图像悬停

gradle - Tar Gradle任务期间不包括某些文件

android - 我可以在 android NDK 中捕获 C 中的异常吗?

javascript - 如何获取 webkit-column-count 值和当前页面或列 ID?

android - 在android中解码流时保持图像质量

html - CSS:在 Chrome 中显示绝对定位元素