Обновление пакета в Felix, встроенного в приложение Android, показывает: java.io.FileNotFoundException

Я встраиваю Apache Felix в приложение для Android. Запуск и остановка пакетов работают нормально. Но я хотел бы обновить пакет, прочитав другой файл пакета. Вот мой код:

bundle1 = bundleContext1.installBundle("file:sdcard/Download/AndroidImageViewer_1.0.0.201308221559.jar");
            bundle1.start();
            bundle1.stop();
            try {
                bundle1.update(new FileInputStream(new File("file:sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar")));
            } catch (FileNotFoundException e) {e.printStackTrace();}
            bundle1.start();

Я ожидал, что это сработает и что мой пакет будет обновлен, но, к сожалению, я получил следующую ошибку:

    java.io.FileNotFoundException: /file:sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar (No such file or directory)
    at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
    at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:239)

Это исключение возникает в следующей строке:

bundle1.update(new FileInputStream(new File("file:sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar")));

Я полностью уверен, что пакет AndroidVideoPlayer_1.0.0.201308231205.jar существует в каталоге загрузки, и я пытался запустить его ранее, и он работал нормально. Я сбит с толку. Любая помощь? Спасибо.


person Traveling Salesman    schedule 02.09.2013    source источник
comment
вы уверены, что URL-адрес не должен начинаться с file://sdcard/...   -  person Peter Kriens    schedule 02.09.2013
comment
Да, я уверен. Собственно, ваш способ не сработал даже для запуска бандла.   -  person Traveling Salesman    schedule 02.09.2013


Ответы (1)


Ах, вы создаете объект File из URL-адреса!

 new File("file:sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar"))

Попробуй это

 File file = new File( "sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar" );
 context.update( new FileInputStream(file));

Or

 context.update( new URL("file:sdcard/Download/AndroidVideoPlayer_1.0.0.201308231205.jar").openStream());
person Peter Kriens    schedule 02.09.2013