Android: привязка внешнего файла к проекту Eclipse - PullRequest
0 голосов
/ 15 ноября 2011

Приложение, над которым я работаю, имеет внешнюю базу данных SQLite (находится в папке активов). Мой друг использует тот же файл БД в версии приложения для iPhone. Содержимое файла БД постоянно обновляется. Поскольку оба проекта находятся в одном репозитории, мы создали общую папку, в которой мы храним файл БД, чтобы оба пользователя могли ссылаться на этот общий ресурс. Он работает в проекте iPhone, но не работает в Android.

В Eclipse я нажимаю assets / new / file и нажимаю Advanced , а затем Ссылка на файл в файловой системе . Файл появляется в папке ресурсов (в Eclipse), но я не могу получить к нему доступ из кода JAVA.

Почему это не работает? Есть ли еще какие-нибудь ссылки на внешние файлы проекта в Eclipse?

Спасибо

РЕДАКТИРОВАНИЕ:

Я использую этот код для открытия файла активов:

OutputStream os = new FileOutputStream(db_path + DB_NAME);
byte []b = new byte[1024];
int i, r;

//load list of files from 'data' folder
String[] fileCollection = am.list("data");
Arrays.sort(fileCollection);
for(i=0;i<fileCollection.length;i++)
{
    //String fn = String.format(DB_NAME"%dd.db", (i + 1));
    String fn = DB_NAME + "." + (i + 1);
    if(fileCollection[i].equals(fn) == false){
        break;
    }
    InputStream is = am.open("data/"+fn);
    while((r = is.read(b)) != -1) {
        os.write(b, 0, r);
    }
    is.close();
}
os.close();

1 Ответ

1 голос
/ 15 ноября 2011

Из приведенных вами подробностей я заключаю, что вы не можете использовать файл базы данных непосредственно из каталога ресурсов, вы должны скопировать этот файл базы данных во внутреннее хранилище приложения data/data/database/ и затем использовать его.

РЕДАКТИРОВАТЬ:

Я думаю, Среда Android не может распознать физический путь ваших системных файлов , поэтому, когда мы пытаемся связать любой файлдля актива или любой папки, которые находятся в иерархии проекта Android, то он не может найти файл, который связан с системным путем.

So to make it working in android you have to put that file in your asset directory physically, not virtually (by putting file link in asset).

Надеюсь, я не ошибаюсь в этом.Если да, то дайте мне знать по этой теме.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...