android sqllite无法从外部包访问

时间:2015-06-08 22:23:01

标签: android sqlite

我正在制作Android应用以学习sqllite。因为我使用了7个表,所以我决定在“DBHelper”文件夹中创建7个类文件,并希望在“DBadapter”文件夹中创建7个文件。这里结构如下:

  • DBHelper:7个帮助文件(例如:PersonH​​elper.java)
  • DBadapter:7个适配器文件(例如:PersonDAO.java)

但是我收到PersonDAO.java的错误消息:“无法从外部包访问”,当我声明对象时:“PersonH​​elper personH​​elper = new PersonH​​elper(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"
}

1 个答案:

答案 0 :(得分:1)

你的PersonHelper的构造函数可能是默认的,就像你在PersonDAO类中一样。所以它只能从同一个包中访问。您必须将其更改为公开才能从PersonDAO访问它:

public PersonHelper(Context context){
   ...
}