Goyave: java.lang.NoClassDefFoundError - com.google.commun.collecter.HashBiMap
Je suis actuellement confrontés au problème de java.lang.NoClassDefFoundError: com.google.commun.collecter.HashBiMap lors de l'utilisation de goyave bibliothèques téléchargé à partir d'ici:
http://code.google.com/p/guava-libraries/
J'ai déjà ajouter guava-12.0.jar dans mon projet comme une bibliothèque de référence, mais j'ai toujours l'erreur. Pouvez-vous donner quelques conseils sur ce que le problème serait? Merci pour votre aide
package my.project;
import android.app.Activity;
import android.os.Bundle;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
public class MainActivity extends Activity{
private BiMap<String,String> bidiMap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bible_help_cal);
bidiMap = HashBiMap.create();
bidiMap.put("a","100");
bidiMap.put("b","200");
}
}
Message d'erreur que je reçois
05-29 18:35:19.737: E/AndroidRuntime(376): FATAL EXCEPTION: main
05-29 18:35:19.737: E/AndroidRuntime(376): java.lang.NoClassDefFoundError: com.google.common.collect.HashBiMap
05-29 18:35:19.737: E/AndroidRuntime(376): at my.project.MainActivity.onCreate(MainActivity.java:18)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.ActivityThread.access$1500(ActivityThread.java:122)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.os.Looper.loop(Looper.java:132)
05-29 18:35:19.737: E/AndroidRuntime(376): at android.app.ActivityThread.main(ActivityThread.java:4025)
05-29 18:35:19.737: E/AndroidRuntime(376): at java.lang.reflect.Method.invokeNative(Native Method)
05-29 18:35:19.737: E/AndroidRuntime(376): at java.lang.reflect.Method.invoke(Method.java:491)
05-29 18:35:19.737: E/AndroidRuntime(376): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-29 18:35:19.737: E/AndroidRuntime(376): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-29 18:35:19.737: E/AndroidRuntime(376): at dalvik.system.NativeStart.main(Native Method)
OriginalL'auteur Eric | 2012-05-29
Vous devez vous connecter pour publier un commentaire.
Cette erreur signifie que la classe était disponible au moment de la compilation, mais ne peut pas être trouvé lors de l'exécution. Le plus souvent le cas quand votre temps de compilation classpath est différent de votre runtime classpath.
Il est très probable que votre runtime classpath ne contient pas de goyave jar. Pour vérifier cela, essayez de l'impression de votre classpath dans votre code.
sur la ligne de commande, vous pouvez utiliser:
java -cp "path/to/guava.jar" MyMainClass
ou sinon, définissez la variable d'environnement CLASSPATH pour inclure le pot.
comment êtes-vous en cours d'exécution de votre code? dans eclipse? d'une autre façon?
Un adroid projet Dans eclipse
vérifiez votre "run configurations". assurez-vous que la goyave pot est inclus. il devrait déjà être inclus si vous créez avec eclipse, mais peut-être que pour une raison quelconque, il ne l'est pas.
Merci pour votre idée.- Je résoudre le problème en copiant le fichier jar de dossier lib et le problème a disparu
OriginalL'auteur Paul Sanwald
Dans mon cas, j'ai eu les deux, de goyave et de google-collection dans ma bibliothèque. google-collection de la bibliothèque est en conflit avec la goyave de la bibliothèque. Si vous avez à la fois de goyave et de google-la collecte, essayez de supprimer google-collection de reconstruire.
OriginalL'auteur Jerry H
J'ai essayé d'utiliser en amont Guave 21 et 22, avec
sourceCompatibility JavaVersion.VERSION_1_8
activé. Ce qui a provoqué cette erreur sur les appareils ci-dessous SDK version 24. La solution a été d'utiliser un guave version qui prend toujours en charge Java 7, qui a été reporté pour Android.OriginalL'auteur lubosz
Il suffit de télécharger la Goyave de la bibliothèque à partir d'ici Goyave
Propre et Construire. Fonctionne pour moi.
Espérons que cela Aide. Cheers
OriginalL'auteur ralphgabb
Dans mon cas, j'ai essayé d'ajouter le
guava-17.0.jar
avec l'optionAdd External JARs...
et ce était le problème. Lorsque j'ai déplacé leguava-17.0.jar
dans mon dossier projets (en vertu de la Libs fichier) je n'ai eu aucun problème.Bien sûr, j'ai supprimé le JAR Externe et l'ajouter à nouveau à l'aide de la
Add JARs...
optionOriginalL'auteur Pontios