2013-06-05 2 views
1

Я переустановил пакет ADT, потому что после обновления eclipse у меня возникли проблемы.Android: ClassNotFoundException

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

06-05 10:33:35.770: E/AndroidRuntime(17751): FATAL EXCEPTION: main 
06-05 10:33:35.770: E/AndroidRuntime(17751): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{foo.bar/foo.bar.TabsFragmentActivity}: java.lang.ClassNotFoundException: foo.bar.TabsFragmentActivity in loader dalvik.system.PathClassLoader[/data/app/foo.bar-2.apk] 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1670) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.os.Looper.loop(Looper.java:130) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread.main(ActivityThread.java:3695) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at java.lang.reflect.Method.invokeNative(Native Method) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at java.lang.reflect.Method.invoke(Method.java:507) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at dalvik.system.NativeStart.main(Native Method) 
06-05 10:33:35.770: E/AndroidRuntime(17751): Caused by: java.lang.ClassNotFoundException: foo.bar.TabsFragmentActivity in loader dalvik.system.PathClassLoader[/data/app/foo.bar-2.apk] 
06-05 10:33:35.770: E/AndroidRuntime(17751): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
06-05 10:33:35.770: E/AndroidRuntime(17751): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
06-05 10:33:35.770: E/AndroidRuntime(17751): ... 11 more 

Вот манифест:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="foo.bar" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 

    <uses-permission android:name="android.permission.BLUETOOTH" /> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="foo.bar.ui.tabs.TabsFragmentActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="foo.bar.ui.activities.EditActivity" 
      android:parentActivityName="foo.bar.ui.tabs.TabsFragmentActivity" 
      android:windowSoftInputMode="stateHidden"> 
     </activity> 
     <activity 
      android:name="foo.bar.ui.activities.LocationActivity" 
      android:label="Select a location" 
      android:parentActivityName="foo.bar.ui.tabs.TabsFragmentActivity" > 
     </activity> 
     <activity 
      android:name="foo.bar.ui.activities.DeleteLocationsActivity" 
      android:label="Delete locations" 
      android:parentActivityName="foo.bar.ui.activities.LocationActivity" > 
     </activity> 
     <activity 
      android:name="foo.bar.ui.activities.ShowLocationActivity" 
      android:parentActivityName="foo.bar.ui.activities.LocationActivity" > 
     </activity> 
     <activity 
      android:name="foo.bar.ui.activities.ShowSnapshotActivity" 
      android:parentActivityName="foo.bar.ui.activities.ShowLocationActivity" > 
     </activity> 
     <service 
      android:name="foo.bar.service.SnapshotService" > 
     </service> 

    </application> 

</manifest> 

Я думаю, что сделал что-то делать с упаковкой, т.е. , он смотрит на неправильное место для активности, но я не знаю, как это исправить.

Я пробовал очистить проект и использовать в манифесте только «.activityname», которые оба не работали.

EDIT: Я получил его сейчас, переместив TabsFragmentActivity в стандартный пакет, а затем обратно в ui.tabs.

Не знаете, почему это сработало.

Спасибо за вашу помощь

+0

Вы могли бы опубликовать код операции и структуру пакета проектов? –

ответ

3

из LogCat:

java.lang.ClassNotFoundException: foo.bar.TabsFragmentActivity 

И из манифеста:

android:name="foo.bar.ui.tabs.TabsFragmentActivity" 

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

  • двигаться TabsFragmentActivity для foo.bar.ui.tabs
  • или изменить андроид: имя = "foo.bar.ui.tabs.TabsFragmentActivity" для андроид: имя = "foo.bar.TabsFragmentActivity"

Примечание:

Если вы недавно обновили свой плагин ADT, то:

В Eclipse щелкните правой кнопкой мыши по проекту -> свойства -> java Путь сборки -> Заказ & Экспортируйте и проверяйте частные библиотеки Android (поддержка Android Li раньше) для вашего проекта, а также во всех других библиотечных проектах, которые вы используете. Очистите и постройте снова.

Надеюсь, это поможет.

+0

TabsFragmentActivity уже есть в пакете foo.bar.ui.tabs – ArtVandelay

+0

Не могли бы вы вставить код, в котором происходит это исключение. – SKK

+0

Это происходит, как только я запускаю приложение. Я не думаю, что есть какой-либо код, потому что он работал до обновления. – ArtVandelay

0

Я думал, что у вас есть переименовать имя пакета из Refactor.At этого времени вы просили некоторые варианты, как

  • Обновление Ссылки
  • переименовывать подпакеты
  • обновление текстовой .....
  • вхождение
  • обновлённые текстовые файлы Java ....

Значит, вы должны внести изменения, как хотите отсюда. ,, Теперь сделайте одно, еще раз сделайте имя своего пакета «Предыдущий», если вы его запомните, и снова повторите его. Возможно, это поможет.

Или используйте Android-инструменты ---> Переименуйте приложение PAckage.

+0

http://stackoverflow.com/questions/6500042/refactoring-package-name-breaks-entire-app Проверить это ... –

0

я встречаю эту ошибку только тогда, когда я импортировать проекты, которые я клонированных из Github, и мое решение так:

  1. правой кнопкой мыши проект в Eclipse, выберите Properties

  2. Выберите Java Build Path в левой, затем выберите вкладку Order and Export

  3. Tick

    • Android 4.2(or any other version that you are using)
    • Android Private Libraries
    • Android Dependencies
  4. Нажмите OK затем сделать проект чистой

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

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