2012-04-15 15 views
5

Próbuję więc stworzyć aplikację klient-serwer dla Androida. W tym celu stworzyłem silnik, który zamierzam użyć zarówno w serwerze, jak i w aplkacji Android i wyeksportować go jako plik .jar.NoClassDefFoundError: Problemy z łączeniem mojego własnego słoika z projektem Android

Nie było problemów z używaniem tego pliku engine.jar po stronie serwera (prosta aplikacja java w tle), ale napotkałem pewne problemy z połączeniem pliku .jar z informacją o moim projekcie Androida.

Aby połączyć engin.jar Śledzę kilka kroków:

  • utworzony "libs" dir w moim projekcie android
  • importowane engine.jar w tym folderze

Po tym engine.jar można zobaczyć w grupie Android Dependences. Również mogę używać wszystkich klas z tego .jar, Eclipse nie oznacza ich jako błąd. Mój projekt kompiluje grzywny, ale awarie aplikacji gdy próbuję stworzyć dowolny obiekt z engine.jar z powodu następującego błędu:

04-15 23:18:12.885: E/AndroidRuntime(17409): java.lang.NoClassDefFoundError: Common.Message.Message

Chyba Próbowałem wszystkiego. Czy ktokolwiek mógłby podzielić się swoimi pomysłami na temat pierwotnej przyczyny opisanej sytuacji?

+0

Czy dodałeś plik jar do ścieżki budowania w Eclipse? Powinien pojawić się w grupie "Biblioteki referencyjne". – smichak

+0

@smichak w SDK Tools v18 +, biblioteki w folderze "libs" są automatycznie dodawane do ścieżki budowania przez "Android Dependencies" –

+0

Jak już powiedziano w poprzednim komentarzu "Referenced Libraries" został przemianowany na "Android Dependencies" od 17 wersji Android SDK –

Odpowiedz

4

Ja też doświadczyłem tego samego problemu. Postanowiłem go w następujący sposób:

prawym przyciskiem myszy na katalogu projektu ->Build Path ->Configure Build Path -> Wybierz zakładkę Order and Export -> Sprawdź/Zaznacz pola wyboru przedmiotowych .jar plików -> Prasa Ok.

Mam nadzieję, że rozwiąże to również Twój problem.

+0

BOOM, który wyglądał na taki. Wielkie dzięki, to był prawdziwy kryzys. –

+0

Dlaczego więc nie przyznać @Arun swojej nagrody? –

+0

Artem, próbowałem, ale system nie pozwolił mi, ponieważ nie minęło wystarczająco dużo czasu. –

0

Do wykorzystania w przyszłości:

Utwórz folder o nazwie „libs” w głównym katalogu projektu, a następnie dodać słoik, który chcesz dodać, i wszystkie rzeczy eksport wspomniano w poprzednim komentarzu zostaną automatycznie wykonane.

0

Wygląda na to, że serwer i klient nie mają tego samego wspólnego słoja z klasami. Podczas kodowania aplikacji serwera klienta musisz upewnić się, że istnieje jakiś wspólny projekt kodu, w większości stanie się on plikiem lib w przyszłości.

Powiązane problemy