2013-04-08 4 views
1

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

04-08 16:49:41.761: E/AndroidRuntime(19254): FATAL EXCEPTION: main 
04-08 16:49:41.761: E/AndroidRuntime(19254): java.lang.RuntimeException: Unable to 
     instantiate activity ComponentInfo{com.me.app/com.me.app.ui.ActivityDashboard}: 
     java.lang.ClassNotFoundException: Didn't find class 
     "com.me.app.ui.ActivityDashboard" 
     on path: /data/app/com.me.app-1.apk 

Моего манифест:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Light.NoTitleBar"> 
    <activity 
     android:name=".ui.ActivityDashboard" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 
      <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    ... 
</application> 

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

  • ADT и SDK полностью обновленный
  • Я здание агу inst Android 2.3.3 (SDK 10)
  • Это выбрано под Android Build Target, а библиотека находится на пути построения Java
  • Все пути класса в манифесте верны, я дважды проверил их все.
  • Все действия находятся в манифесте, с правильными намерениями.

ответ

4

и Библиотека находится в Java Build Path

Это неверно. Отмените это изменение, затем переместите JAR в каталог вашего проекта libs/.

При добавлении JAR вручную к пути сборки будет удовлетворять компилятору во время компиляции, он не будет добавлять содержимое JAR в файл APK во время выполнения, в результате чего ClassNotFoundException и тому подобное.

Обратите внимание, что я имею в виду сторонние JAR, такие как the first four entries in your screenshot. Ни один из них не находится в libs/, и все должно быть.

Единственные исключения для все-файлов JAR-должны-быть-в libs/ правил являются:

  1. собственной платформы JAR Андроида, прикрепленный к вашему проекту с помощью выбора целевой сборки (причины: содержание этого Jar в в частности, не должны быть включены в APK)

  2. проектов библиотеки Android, которые имеют свои собственные libs/ каталоги для сторонних JAR-файлы, которые они ссылаются на

Ваша основная ошибка в том, что com.me.app.ui.ActivityDashboard не найден, что указывает на то, что это один из ваших четырех JAR, которые не находятся в libs/.

+0

Я уверен, что запись в библиотеке была добавлена ​​щелчком правой кнопки мыши по проекту> «Инструменты Android»> «Исправить свойства проекта». Вздох. – fredley

+0

Итак, я удалил библиотеку из Java Build Path, которая сломала весь мой импорт. Затем я переместил 'android.jar' в'/libs' и снова добавил его (ошибки импорта не исчезли, пока я не добавил). Теперь я получаю сообщение консоли, в котором говорится: «Неисправное или ошибочное использование основного класса (java. * Или javax. *) , когда вы не создаете основную библиотеку.« – fredley

+0

@TomMedley: ваш сторонний JAR по какой-то причине содержит классы в пакетах 'java. *' или 'javax. *'. Это нецелесообразно. Вы уверены, что этот сторонний JAR предназначен для использования на Android? – CommonsWare

Смежные вопросы