Προσπαθώ να χρησιμοποιήσω το νέο Android Studio, αλλά δεν μπορώ να το κάνω να δουλέψει σωστά.
Χρησιμοποιώ τη βιβλιοθήκη Gson για τη σειριοποίηση/αποδιαφοροποίηση αντικειμένων JSON. Αλλά η βιβλιοθήκη με κάποιο τρόπο δεν περιλαμβάνεται στο build.
Είχα δημιουργήσει ένα νέο έργο με μόνο μια MainActivity. Αντέγραψα την gson-2.2.3.jar στο φάκελο /libs και την πρόσθεσα ως εξαρτώμενη βιβλιοθήκη (δεξί κλικ->Add as library). Αυτό περιλαμβάνει το jar στο android studio ώστε να μπορεί να γίνει αναφορά από τα αρχεία πηγής.
Όταν προσπαθώ να τρέξω το έργο δεν μπορεί να μεταγλωττιστεί οπότε πρόσθεσα:
compile files('libs/gson-2.2.3.jar')
στις εξαρτήσεις στο αρχείο .gradle. Μετά από αυτό μεταγλωττίζει σωστά αλλά όταν τρέχω την εφαρμογή παίρνω ένα ClassDefNotFoundException
.
Ξέρει κανείς τι κάνω λάθος;
Παλεύω με το ίδιο πράγμα εδώ και πολλές ώρες, προσπαθώντας να κάνω το βάζο Gson να λειτουργήσει. Τελικά το έσπασα - εδώ είναι τα βήματα που έκανα:
Τοποθετήστε το jar του Gson (στην περίπτωσή μου, gson-2.2.4.jar
) στο φάκελο libs
.
Κάντε δεξί κλικ και πατήστε 'Add as library',
Βεβαιωθείτε ότι το compile files('libs/gson-2.2.4.jar')
είναι στο αρχείο build.gradle
σας (ή compile fileTree(dir: 'libs', include: '*.jar')
αν χρησιμοποιείτε πολλά αρχεία jar)
Επεξεργασία : Χρησιμοποιήστε το αρχείο implementation files('libs/gson-2.2.4.jar')
(ή implementation fileTree(dir: 'libs', include: '*.jar')
) στο Android Studio 3.0+
Κάντε μια καθαρή κατασκευή (μπορείτε πιθανώς να το κάνετε αυτό μια χαρά στο Android Studio, αλλά για να σιγουρευτώ πλοηγήθηκα σε ένα τερματικό στον ριζικό φάκελο της εφαρμογής μου και πληκτρολόγησα gradlew clean
. Είμαι σε Mac OS X, η εντολή μπορεί να είναι διαφορετική στο σύστημά σας
Αφού έκανα τα παραπάνω τέσσερα, άρχισε να λειτουργεί κανονικά. Νομίζω ότι το βήμα 'Προσθήκη ως βιβλιοθήκη' ήταν αυτό που μου είχε ξεφύγει προηγουμένως, και δεν λειτουργούσε ούτε αυτό μέχρι να το καθαρίσω.
[Επεξεργασία - προστέθηκε το βήμα build.gradle
το οποίο είναι επίσης απαραίτητο όπως τόνισαν και άλλοι]
IIRC, η απλή χρήση του "Add as library" δεν είναι αρκετή για να μεταγλωττιστεί με το έργο.
Ελέγξτε τη Intellij's help σχετικά με την προσθήκη βιβλιοθηκών σε ένα έργο
Το σημείο που θα πρέπει να σας ενδιαφέρει περισσότερο είναι αυτό:
(Στο
File > Project Structure
) Ανοίξτε τις ρυθμίσεις της ενότητας και επιλέξτε την καρτέλα Dependencies.
Στην καρτέλα Dependencies (Εξαρτήσεις), κάντε κλικ στο add (Προσθήκη) και επιλέξτε Library (Βιβλιοθήκη).
Στο παράθυρο διαλόγου Choose Libraries (Επιλογή βιβλιοθηκών), επιλέξτε μία ή περισσότερες βιβλιοθήκες και κάντε κλικ στο Add Selected (Προσθήκη επιλεγμένων).
Εάν η βιβλιοθήκη δεν εμφανίζεται στο διάλογο, προσθέστε την στις ρυθμίσεις Βιβλιοθήκες, ακριβώς κάτω από τις Ενότητες.
Δεν θα πρέπει να χρειάζεται να προσθέσετε πια το compile files()
και η βιβλιοθήκη θα πρέπει να προστεθεί σωστά στο έργο σας.
Σε Mac OS X:
Προσθέστε το jar ως βιβλιοθήκη (σύρετε το jar στο libs, κάντε δεξί κλικ στο add as lib)
Προσθέστε δήλωση μεταγλώττισης στο build.grade
Εγκαταστήστε το gradle v1.6
(χρησιμοποιήστε το homebrew)
Αυτό με έβγαλε από τη δύσκολη θέση.