我正在制作Android应用以学习sqllite。因为我使用了7个表,所以我决定在“DBHelper”文件夹中创建7个类文件,并希望在“DBadapter”文件夹中创建7个文件。这里结构如下:
根
但是我收到PersonDAO.java的错误消息:“无法从外部包访问”,当我声明对象时:“PersonHelper personHelper = new PersonHelper(context);”在构造函数中。
任何人都知道如何解决这个问题而不将所有文件放在一个文件夹中?创建多个大型表时,业界的标准是什么?
PS:一旦我将所有文件放在一个目录中,错误就消失了。
public class PersonDAO {
private Context context;
//Database info
private static final String DATABASE_NAME = "MyDB";
private static final int DATABASE_VERSION = 1;
//Table helper info
public PersonHelper databaseHelper;
private SQLiteDatabase db = null;
//Constructors
PersonDAO(Context context) {
this.context = context;
databaseHelper = new PersonHelper(context); //Error: "cannot be accessed from outside package"
}
答案 0 :(得分:1)
你的PersonHelper
的构造函数可能是默认的,就像你在PersonDAO类中一样。所以它只能从同一个包中访问。您必须将其更改为公开才能从PersonDAO访问它:
public PersonHelper(Context context){
...
}