Wiem o projektach biblioteki systemu Android, które umożliwiają tworzenie projektów współdzielonych, które można w razie potrzeby pobrać do aplikacji na Androida. Jednak wymaga to dostępności tego źródła.
Szukam sposobu na zbudowanie i rozpowszechnianie biblioteki o zamkniętym kodzie źródłowym, której można by używać w innych projektach Androida, takich jak tradycyjny JAR. Będzie to wymagało użycia kompilatora Androida, więc nie jest to plik JAR vanilla-Java. FWIW, nie muszę osadzać zasobów / układów w JAR.
Widziałem http://andparcel.com/, ale wydaje mi się, że jest to obejście i wolałbym raczej użyć czegoś „oficjalnie obsługiwanego” przez Google. Muszę również upewnić się, że JAR, który buduję, jest kompatybilny ze starą / nową wersją Android SDK (tj. Potrzebuję sposobu na ustawienie docelowej wersji platformy itp.).
Czy najnowsze zestawy narzędzi dla Androida umożliwiają tworzenie / używanie plików binarnych JAR? Czy możesz wskazać jakąś dokumentację, jak mogę to zrobić?
Odpowiedzi:
Jeśli utworzysz projekt biblioteki systemu Android bez żadnych zasobów, narzędzie ADT (po raz pierwszy zauważone w r16) utworzy plik .jar o tej samej nazwie, co projekt w folderze „bin”.
źródło
myapp.jar
w/bin
folderze. Jestclasses.jar
, ale to nie to, prawda?Android nie zapewnia specjalnego rodzaju pliku Android-JAR. Ale co możesz zrobić, to dodać build.xml do swojego projektu i zbudować JAR za pomocą ant.
Mój plik build.xml wygląda następująco:
Zbuduj JAR, uruchamiając
ant jar
w głównym folderze projektów.źródło
bin/classes
, więc<jar destfile="MyAndroidLib.jar" basedir="bin/">
powinno być<jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
Możesz utworzyć „zwykły” projekt Java i zaimportować stamtąd plik Android.jar. Wtedy będziesz mieć dostęp do każdego komponentu w SDK. Następnie możesz wyeksportować swój projekt jako jar ... i załadować go z aplikacji na Androida. To działa świetnie i wydaje się, że jest to całkiem prosty sposób.
źródło
po prostu przejdź do właściwości projektu, z którego chcesz zrobić jar i kliknij w zakładkę Android. i zaznacz w bibliotece Is. teraz możesz zobaczyć plik .jar w folderze bin. użyj go tam, gdzie chcesz.
źródło
Jedynym rozwiązaniem „oficjalnie wspieranym” przez Google jest projekt Library, który wymaga dystrybucji kodu źródłowego. Możesz utworzyć plik JAR w normalny sposób, ale nie możesz w nim umieszczać ani odwoływać się do zasobów.
Niestety myślę, że nie jest również możliwe włączenie spakowanego pliku JAR do projektu biblioteki, jako środka do obejścia wymagań dotyczących kodu źródłowego.
źródło
W najnowszej wersji Android Studio 1.2 tworzenie biblioteki JAR było tak proste, jak wskaż i kliknij.
Kroki do naśladowania :
Następnym krokiem jest dodanie biblioteki Jar jako zależności w aplikacji. Proste
.... Lub możesz po prostu dodać poniższy wiersz do pliku aplikacji gradle
Google promuje archiwum Androida (AAR), mimo że obsługiwany JAR jest przywracany do studia Android.Aby poznać różnicę między AAR a JAR, skorzystaj z tego linku
źródło
Spróbuj tego: to działa
1) Ustaw projekt biblioteki jako normalny projekt, odznaczając flagę IsLibrary.
2) Wykonaj projekt jako aplikację na Androida. (Nie pokaże żadnego błędu)
3) w folderze bin znajdziesz plik .jar wraz z .apk.
4) Daj ci .jar, który chce korzystać z twojej biblioteki.
5) Powiedz im, aby zaimportowali zewnętrzny plik jar do ścieżki kompilacji.
będzie to działać dobrze ze wszystkimi zasobami. powodzenia.
źródło
ADT tworzy folder bin, który zawiera wszystkie pliki klas dla wszystkich pasujących plików źródłowych i katalogów w twoim projekcie, możesz użyć polecenia jar, utworzyć archiwum jar zawierające te pliki klas i katalogi oraz prawdopodobnie twoją bibliotekę, ale oczywiście poziom platformy plików klas byłby przeznaczony tylko dla bieżącego poziomu kompilacji projektu - potrzebny byłby inny plik jar dla każdego poziomu platformy; Jednak wspaniałą rzeczą w tym jest to, że plik R.class jest zawarty w drzewie katalogów projektu i dzięki temu masz dostęp do jego zasobów. Nie wiem, czy to oficjalny sposób robienia rzeczy na Androidzie, ale zadziałał dla mnie.
źródło
W naszym projekcie tworzymy apk (używając apkbuildera), który jest instalowany w / system / framework i dodaje ten apk w domyślnej ścieżce klas. W celu kompilacji aplikacji korzystających z jar, tworzymy plik jar (używając jar c).
Uwaga: nie mamy żadnych zasobów w bibliotece.
źródło
.jar to po prostu plik .zip, który zawiera plik .class (możesz spróbować zmienić rozszerzenie dowolnego pliku .jar na .zip i zobaczyć wynik). Możesz łatwo utworzyć dowolną bibliotekę .jar do dowolnego celu, spakując plik .class.
źródło
Kroki :
1) Otwórz plik project.properties
2) Dodaj wartość
android.library=true
3) Zapisz plik
4) Z menu eclipse dla projektu wybierz opcję buduj automatycznie, a następnie wyczyść
Wynik: pod koszem zostanie utworzony nowy słoik .
źródło