gpt4 book ai didi

java - Android 从类路径加载文件导致崩溃

转载 作者:行者123 更新时间:2023-12-02 04:53:36 25 4
gpt4 key购买 nike

我正在尝试从 Android 中的静态上下文中的类路径加载文件,SO 上的每个类似问题都建议使用 MyClass.class.getClassLoader().getResourcesAsStream(<filepath>) ,但这会导致我的应用程序在打开之前崩溃。

我的目标 SDK 是 19,最低 SDK 级别是 17,并且我使用的是运行 Android Lollipop 的手机

这是我尝试加载文件“locations.xml”的代码部分:

public static final String LOCATIONS_FILE_PATH = "locations.xml";

public static ArrayList<City> getLocations(String locations_file_path) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document document = null;
try {
builder = factory.newDocumentBuilder();
document = builder.parse(
City.class.getClassLoader().getResourceAsStream(locations_file_path));

该文件与引用它的 java 类位于同一包中。

logcat 中给出的错误是 IllegalArgumentExceptionDocumentBuilder.parse(...)因为City.class.getClassLoader().getResourceAsStream("locations.xml"))返回null .

最佳答案

我认为您需要验证在最终的 apk 文件中,xml 文件实际上包含在您认为的位置。

Android 更常见的模式是将文件放在“assets”目录中,然后使用 Activity 的 getAssets() 方法从那里加载它。

参见Read Assets file as string

关于java - Android 从类路径加载文件导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com