2013-09-03 5 views
0

Je continue d'obtenir l'exception classnotfound lorsque j'essaie d'exécuter mon projet sur un émulateur. J'ai regardé autour ici avant de poster cette question, j'ai essayé d'ajouter des bibliothèques au chemin de construction, nettoyant/construisant le projet mais n'ai pas encore résolu le problème.Android ClassNotFoundException utilisant la bibliothèque actionbarsherlock

Le projet a été construit à partir d'un projet de calendrier open source. Donc le nom est bizarre, mais n'a aucun effet sur la construction.

Voici le LogCat:

09-03 12:37:36.990: E/Trace(2272): error opening trace file: No such file or directory (2) 
09-03 12:37:37.439: W/dalvikvm(2272): Unable to resolve superclass of Lcom/squareup/timessquare/sample/DashboardActivity; (453) 
09-03 12:37:37.482: W/dalvikvm(2272): Link of class 'Lcom/squareup/timessquare/sample/DashboardActivity;' failed 
09-03 12:37:37.482: D/AndroidRuntime(2272): Shutting down VM 
09-03 12:37:37.482: W/dalvikvm(2272): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
09-03 12:37:37.540: E/AndroidRuntime(2272): FATAL EXCEPTION: main 
09-03 12:37:37.540: E/AndroidRuntime(2272): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.squareup.timessquare.sample/com.squareup.timessquare.sample.DashboardActivity}: java.lang.ClassNotFoundException: com.squareup.timessquare.sample.DashboardActivity 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.os.Looper.loop(Looper.java:137) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at java.lang.reflect.Method.invoke(Method.java:511) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at dalvik.system.NativeStart.main(Native Method) 
09-03 12:37:37.540: E/AndroidRuntime(2272): Caused by: java.lang.ClassNotFoundException: com.squareup.timessquare.sample.DashboardActivity 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
09-03 12:37:37.540: E/AndroidRuntime(2272):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 

Et voici la classe déclarée dans le manifeste:

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

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


    <application 
     android:label="@string/app_name" 
     android:icon="@drawable/supporticon" 
     android:debuggable="true" 
     android:supportsRtl="true"> 

     <activity 
      android:name=".DashboardActivity" 
      android:label="@string/app_name" 
      android:configChanges="orientation|screenSize|keyboardHidden" 
      > 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

Voici le contenu de classe:

public class DashboardActivity extends SherlockFragmentActivity { 

    ActionBar mActionBar; 
    ViewPager mPager; 
    Tab tab; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.dashboard); 

     // Activate the navigation mode tabs 
     mActionBar = getSupportActionBar(); 
     mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Locate the view pager in dashboard.xml 
     mPager = (ViewPager) findViewById(R.id.pager); 

     // Activate the fragment manager 
     FragmentManager fm = getSupportFragmentManager(); 

     // Capture view pager swipes 
     ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       super.onPageSelected(position); 
       // Find the view pager position 
       mActionBar.setSelectedNavigationItem(position); 
      } 
     }; 

     mPager.setOnPageChangeListener(ViewPagerListener); 
     // Locate the adapter class 
     ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm); 
     // Set the view pager adapter in ViewPager 
     mPager.setAdapter(viewpageradapter); 

     // Capture the button clicks 
     ActionBar.TabListener tabListener = new ActionBar.TabListener() { 

      @Override 
      public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
       // Pass the position on tab click to view pager 
       mPager.setCurrentItem(tab.getPosition()); 

      } 

      @Override 
      public void onTabSelected(Tab tab, FragmentTransaction ft) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onTabReselected(Tab tab, FragmentTransaction ft) { 
       // TODO Auto-generated method stub 

      } 
     }; 

     // Create the first tab 
     tab = mActionBar.newTab().setText("Support Tab") 
       .setTabListener(tabListener); 
     mActionBar.addTab(tab); 

     // Create the second tab 
     tab = mActionBar.newTab().setText("Students Tab") 
       .setTabListener(tabListener); 
     mActionBar.addTab(tab); 

    } 

} 

Les seules questions que je peux penser est-ce quand je fais un clic droit sur mon projet> propriétés du projet> Android la référence actionbarsherlock a une croix rouge ide it. Même s'il n'y a pas d'erreur dans mes classes où j'ai utilisé la bibliothèque, je ne suis pas sûr que cela ait quelque chose à voir avec ça.

Toute aide serait appréciée, merci.

Répondre

0

Les seules questions que je peux penser est que lorsque je clique droit sur mon projet > propriétés du projet> Android la référence ActionBarSherlock a une croix rouge à côté. Même s'il n'y a pas d'erreurs dans mes classes où j'ai utilisé la bibliothèque, je ne suis pas sûr si cela a quelque chose à voir avec .

Oui, cela a certainement quelque chose à voir avec cela. Cela signifie que votre projet ne trouve pas l'emplacement de votre fichier jar ou de votre projet lib.

Sur cette entrée dans la page des propriétés du projet, appuyez de nouveau sur le bouton d'édition et accédez de nouveau au dossier projet jar/lib. Ce n'est que lorsque ce x rouge devient vert que vous pourrez exécuter votre programme correctement.

+0

Lorsque j'ajoute la bibliothèque après l'avoir copiée dans Eclipse, il y a une coche verte en regard. Après avoir cliqué sur OK et revenir aux propriétés, il est de nouveau rouge. Je ne sais toujours pas pourquoi cela se passe, j'ai essayé de stocker actionbarsherlock est divers endroits, mais arrive quand même? – hannahharkness

Questions connexes