2012-05-28 4 views
6

A avoir un projet Android nommé TestAndroid. Je suis capable de l'exécuter sans problème sur mon appareil Android. Cependant, je veux être en mesure d'utiliser le code d'un autre projet. Je vais donc à mon chemin de construction et ajouter le projet Test. Test est un projet java standard utilisant java6. Le projet Test a un test de classe, qui est juste une classe vide.Projet Android impossible de référencer un autre projet dans Eclipse

Voici où ça gâche quand, quand je crée une instance de Test dans TestAndroid, je reçois une erreur d'exécution. Voici l'erreur que je reçois de logcat.

05-27 21:47:49.976: E/dalvikvm(27493): Could not find class 'com.tests.eclipseisbroken.Test', referenced from method com.tests.eclipseisbroken.TestAndrodiActivity.onCreate 
05-27 21:47:49.986: W/dalvikvm(27493): VFY: unable to resolve new-instance 11 (Lcom/tests/eclipseisbroken/Test;) in Lcom/tests/eclipseisbroken/TestAndrodiActivity; 
05-27 21:47:49.986: D/dalvikvm(27493): VFY: replacing opcode 0x22 at 0x0008 
05-27 21:47:49.986: D/dalvikvm(27493): VFY: dead code 0x000a-000d in Lcom/tests/eclipseisbroken/TestAndrodiActivity;.onCreate (Landroid/os/Bundle;)V 
05-27 21:47:50.026: D/AndroidRuntime(27493): Shutting down VM 
05-27 21:47:50.046: W/dalvikvm(27493): threadid=1: thread exiting with uncaught exception (group=0x40028a00) 
05-27 21:47:50.056: E/AndroidRuntime(27493): FATAL EXCEPTION: main 
05-27 21:47:50.056: E/AndroidRuntime(27493): java.lang.NoClassDefFoundError: com.tests.eclipseisbroken.Test 
05-27 21:47:50.056: E/AndroidRuntime(27493): at com.tests.eclipseisbroken.TestAndrodiActivity.onCreate(TestAndrodiActivity.java:16) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.ActivityThread.access$2300(ActivityThread.java:135) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.os.Looper.loop(Looper.java:143) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at android.app.ActivityThread.main(ActivityThread.java:4914) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at java.lang.reflect.Method.invokeNative(Native Method) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at java.lang.reflect.Method.invoke(Method.java:521) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
05-27 21:47:50.056: E/AndroidRuntime(27493): at dalvik.system.NativeStart.main(Native Method) 

Je pense qu'il doit y avoir quelque chose de mal avec mon éclipse installer, parce que j'avais un projet était que je devais faire référence à un autre projet et cela a fonctionné. Je préfère le réparer maintenant que réinstaller complètement éclipse et tous mes plugins. Si quelqu'un sait ce qui ne va pas et pourrait m'aider, je l'apprécierais grandement. Merci!!

+0

Envoyer cette doc - http://developer.android.com/guide/developing/projects/projects-eclipse.html – adatapost

+0

@AVD I Je n'essaie pas de faire référence à un autre projet Android, mais juste un projet Java standard. – Stratus

+0

duplication possible de [projet Android référençant le projet java "normal" dans eclipse depuis la mise à jour des outils sdk 17] (http://stackoverflow.com/questions/9889572/android-project-referencing-normal-java-project-in-eclipse- depuis-sdk-tools-upd) –

Répondre

9

Supposons que vous utilisez le dernier Android SDK & la version ADT, et que vous souhaitez ajouter un projet Java standard B comme une dépendance dans le projet Android A:

  1. Ajouter un projet B au projet de chemin de construction d'un : Properties -> Java Build Path -> Projects -> Add ...
  2. Tick projet B dans le projet A la liste d'exportation de chemin de construction: Properties -> Java Build Path -> Order and Export

Vous devriez maintenant pouvoir utiliser la classe de la bibliothèque Java standard dans votre projet Android et la construire/exécuter/déboguer dans Eclipse.

Espérons que cela aide.

MISE À JOUR: Les opérations ci-dessus il suffit d'ajouter une ligne dans .classpath

<classpathentry combineaccessrules="false" exported="true" kind="src" path="/projB"/> 
+0

J'ai oublié de cocher la case du projet. Je vous remercie. – Stratus

+0

Que se passe-t-il si j'ai effectué ces étapes mais que j'ai reçu la même erreur? –

+0

Vous n'avez jamais compris à quoi servait la case à cocher 'export', mais quelqu'un dans eclipse land était prescient et savait que nous en aurions besoin pour les applications android. :-) Merci beaucoup, je me cognais la tête contre celui-ci depuis un moment. – stu

Questions connexes