Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
Java 使用getAssets()会出现错误;类型ClassName“的getAssets()方法未定义;?_Java_Android - Fatal编程技术网

Java 使用getAssets()会出现错误;类型ClassName“的getAssets()方法未定义;?

Java 使用getAssets()会出现错误;类型ClassName“的getAssets()方法未定义;?,java,android,Java,Android,我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”。所以我被卡住了。有没有更好的方法打开该文件?这是一句话: InputStream is = getAssets().open("file1.txt"); *注意:ClassName不是一个活动,它只是一个

我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”。所以我被卡住了。有没有更好的方法打开该文件?这是一句话:

InputStream is = getAssets().open("file1.txt");
*注意:ClassName不是一个活动,它只是一个类,因此如果不从另一个活动传递上下文,getAssets()将无法工作

编辑:下面是类和onCreate声明:

public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {//some stuff
InputStream is = getAssets().open("file1.txt");
//more stuff
}
}
那么:

InputStream is = getActivity().getAssets().open("file1.txt");
我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误

getAssets()
Context
上的一个方法

我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”

由于您拒绝将源代码粘贴到发生这种情况的位置,因此很难为您提供帮助

ClassName不是一个活动,它只是一个类

更具体地说,它是
SQLiteOpenHelper
的一个子类

因此,如果不从另一个活动传递上下文,getAssets()将无法工作

SQLiteOpenHelper
Context
传递给它的构造函数,您需要覆盖它

除此之外,如果您的目标是在应用程序中打包数据库,因为它已经解决了这个问题。

使用
getContext()
方法。设置
getContext().getAssets()
。我希望它能起作用。实际上,getAssets()是一种基于上下文的方法。
有关更多详细信息,您可以访问

一些java代码会很好,伙计…@Sajmon我添加了一条线,当出现错误时,会说“类型ClassName的getActivity()方法未定义”。