Бесконечные проблемы с запуском внешней активности - ресурс не найден - PullRequest
2 голосов
/ 28 декабря 2011

Работа над моим первым Android-приложением здесь.Я искал и пробовал все, что только мог придумать, но не повезло ...

В рамках своего приложения я пытаюсь включить отдельный проект выбора файлов.Я пытаюсь сохранить селектор выбора отдельно, чтобы его можно было использовать в нескольких будущих проектах.Само по себе, он запускается нормально.Проблема в том, что когда я пытаюсь запустить его из основного приложения, я получаю Resources.NotFoundException.У меня были проблемы с Class Not Found, который, я думаю, я исправил, включив chooser в Java Build Path и включив в манифест Android основного приложения.*

<application ...    
    <activity android:name=".MyMainApp" ...
    <activity android:name=".MyOtherActivity" ...
    <activity android:name="com.didjit.filechooser.FileChooser"/>
</application       

File Chooser запускается в основном коде следующим образом:

Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class);
startActivityForResult(intent, REQ_CODE_CHOOSE_SOURCE);

На стороне Chooser ресурс, который не найден, является R.layout.main:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    browseToRoot();
    findViewById(R.id.btnDone).setOnClickListener(this);
}

Ошибка, которую он выдает, заключается в следующем:

: FATAL EXCEPTION: main
: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didjit.MyMainApp/com.didjit.filechooser.FileChooser}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
...
12-27 18:07:00.296: E/AndroidRuntime(1961): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001

Одна вещь, к которой я подозреваю, это com.didjit.MyMainApp/com.didjit.filechooser.FileChooser, как будто он рассматривает внешний проект как подкомпонент.

Кроме того, я волнуюсь, что изменил конфигурацию проекта, борясь с этим.Первоначально класс выбора не был найден.Казалось, что перечислить его под Java Build Path / Projects было недостаточно;Я должен был также включить папку класса под Java Build Path / Libraries.Я также столкнулся с той же проблемой, если сделал проект выбора библиотекой.

Итак ... Почему сейчас можно найти классы проекта, но не ресурсы?Любая помощь приветствуется.Спасибо!

PS Это в Eclipse, кодирование против API 10.

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Попробуйте заменить

Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class);

с

Intent intent = new Intent("com.didjit.filechooser.FileChooser");

То, как вы сейчас это делаете, говорит о том, что действие находится внутри вашего текущего проекта. Вот почему его не найти внешние ресурсы. То, что я предлагаю, - это стандартный способ открытия внешнего приложения.

0 голосов
/ 31 декабря 2011

Ничто из этого не работает для меня.Я нашел другой подход к этой проблеме.

Вы можете использовать:

Intent i = new Intent("Whatever");
i.setComponent(new ComponentName("com.didjit.filechooser","com.didjit.filechooser.FileChooser"));
startActivity(i);

Где "com.didjit.filechooser" - это имя вашего пакета, а "com.didjit.filechooser.FileChooser" - этоимя действия, которое вы хотите запустить.

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