Dodawanie Kotlin do istniejącej aplikacji
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Android Studio obsługuje Kotlin i umożliwia dodawanie
Kotlin do istniejącego projektu i przekonwertuj kod języka Java na Kotlin.
Teraz możesz używać wszystkich narzędzi dostępnych w Android Studio przy użyciu swojego kodu Kotlin,
w tym autouzupełnianie, sprawdzanie lint, refaktoryzację, debugowanie i inne.
Jeśli rozpoczynasz nowy projekt i chcesz użyć Kotlina, zapoznaj się z artykułem
Utwórz projekt.
Aby dodać Kotlin do projektu, wykonaj te czynności:
Kliknij Plik > Nowy i wybierz jeden z różnych szablonów na Androida, taki jak
jako nowy pusty fragment Fragment, jak widać na ilustracji 1. Jeśli nie widzisz listy
szablonów w tym menu, najpierw otwórz okno Projekt i wybierz
z modułu aplikacji.
Rysunek 1. Wybierz jeden z dostępnych szablonów, np. fragment
lub aktywność..
W wyświetlonym kreatorze wybierz Kotlin jako Język źródłowy.
Rysunek 2 pokazuje okno Nowa aktywność w Androidzie, w którym
utworzyć nową aktywność.
Rysunek 2. Okno Nowa aktywność na Androidzie, w którym
jako Język źródłowy wybierz Kotlin.
Kontynuuj korzystanie z kreatora.
Możesz też kliknąć Plik > Nowe > Kotlin File/Class, aby utworzyć
podstawowy plik Kotlin. Jeśli nie widzisz tej opcji, otwórz okno Projekt i
wybierz katalog java. Okno Nowy plik/klasa Kotlin umożliwia
podać nazwę pliku i wybrać jego typ: Plik,
Class, Interface, Enum Class lub Object. Wybór, którego dokonasz
określa podstawowe rusztowanie utworzone w nowym pliku Kotlin. Jeśli
wybierz Class, Android Studio utworzy nowy plik źródłowy Kotlin z podanymi
nazwa i definicja klasy pasującej. Jeśli wybierzesz Interfejs,
jest zadeklarowana w pliku i tak dalej.
Jeśli po raz pierwszy dodajesz nową klasę lub plik Kotlin do
bezpośrednio do projektu (bez szablonów dla Androida), Android Studio wyświetla
Ostrzeżenie o tym, że usługa Kotlin nie jest skonfigurowana w projekcie, jak pokazano na rys. 3.
Aby skonfigurować Kotlin, kliknij Skonfiguruj w prawym górnym rogu
w edytorze lub w alercie dziennika zdarzeń, który pojawi się w prawym dolnym rogu.
Rysunek 3. Android Studio wyświetla okno z ostrzeżeniem, gdy Kotlin
nie zostało skonfigurowane w projekcie.
Wybierz opcję skonfigurowania Kotlin dla wszystkich modułów zawierających Kotlin
, jak pokazano na rysunku 4:
Rysunek 4. Wybierz, aby skonfigurować Kotlin dla wszystkich modułów zawierających
Kod Kotlina.
Gdy klikniesz OK, Android Studio doda Kotlin do ścieżki zajęć projektu.
stosuje wtyczkę Kotlin na Androida do każdego modułu zawierającego pliki Kotlin.
Twoje pliki build.gradle powinny wyglądać podobnie do tych poniżej:
// Inside each module using kotlinplugins{...id'kotlin-android'}...dependencies{implementation'androidx.core:core-ktx:1.3.2'implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"}
Kotlin
// Inside each module using kotlinplugins{...kotlin("android")}...valkotlin_version:StringbyrootProject.extradependencies{implementation("androidx.core:core-ktx:1.3.2")implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")}
Organizacja źródłowa
Domyślnie nowe pliki Kotlin są zapisywane w usłudze src/main/java/, co ułatwia
aby zobaczyć zarówno pliki Kotlin, jak i Java w jednym miejscu. Jeśli wolisz oddzielić
plików Kotlin z plików Java, pliki Kotlin możesz umieścić w
src/main/kotlin/. Jeśli to zrobisz, musisz też dodać atrybut
w katalogu sourceSets
Jak poniżej:
Aby przekonwertować kod Java na Kotlin, otwórz plik Java w Android Studio i wybierz
Kod > Przekonwertuj plik Java na plik Kotlin. Możesz też utworzyć nowy projekt Kotlin
(File > New > Kotlin File/Class (Plik > Nowy > Plik/klasa Kotlin))), a następnie wklej kod w języku Java
ten plik. Android Studio wyświetli prośbę i zaproponuje konwersję kodu
jak widać na ilustracji 5. Kliknij Tak, aby przekonwertować dane. Opcjonalnie możesz
zaznacz opcję Nie pokazuj tego okna następnym razem, która spowoduje przyszłe konwersje.
automatyczne.
Rysunek 5. Android Studio umożliwia konwersję kodu Java na Kotlin.
Konwersja kodu i dopuszczalność wartości null
Proces konwersji w Android Studio tworzy odpowiedni kod Kotlin
który kompiluje i uruchamia. Prawdopodobnie jednak trzeba będzie w ten sposób
do przekonwertowanego kodu. Możesz na przykład określić, jak
przekonwertowany kod obsługuje typy dopuszczone do wartości null.
W Androidzie często opóźnia się inicjalizację obiektów View i innych
dopóki fragment lub działanie, do których są dołączone, nie osiągnie
odpowiedni stan cyklu życia. Możesz na przykład mieć odniesienie do
w jednym z fragmentów, jak widać w tym fragmencie:
publicclassJavaFragmentextendsFragment{// Null until onCreateView.privateButtonbutton;@OverridepublicViewonCreateView(@NonNullLayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){Viewroot=inflater.inflate(R.layout.fragment_content,container,false);// Get a reference to the button in the view, only after the root view is inflated.button=root.findViewById(R.id.button);returnroot;}@OverridepublicvoidonViewCreated(@NonNullViewview,@NullableBundlesavedInstanceState){super.onViewCreated(view,savedInstanceState);// Not null at this point of time when onViewCreated runsbutton.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){...}});}}
Zmienna przycisku ma wartość null, jednak ze względów praktycznych
W tym przykładzie nie powinna mieć ona wartości null. Ponieważ jednak jego wartość nie jest
jest przypisany w punkcie budowy, wygenerowany kod Kotlin traktuje jako Button
jako typ do wartości null i do wyodrębniania przycisku używa niepustego operatora asercji.
podczas dodawania odbiornika kliknięć, jak pokazano poniżej:
classJavaFragment:Fragment(){// Null until onCreateView.privatevarbutton:Button? =nulloverridefunonCreateView(inflater:LayoutInflater,container:ViewGroup?,savedInstanceState:Bundle?):View? {...// Get a reference to the button in the view, only after the root view is inflated.button=root.findViewById(R.id.button)...}overridefunonViewCreated(view:View,savedInstanceState:Bundle?){super.onViewCreated(view,savedInstanceState)// Not null at the point of time when onViewCreated fires // but force unwrapped nonethelessbutton!!.setOnClickListener{}}}
Ta konwersja jest mniej idealna w tym przypadku niż użycie funkcji lateinit, ponieważ
są zmuszeni do wyodrębnienia odwołania do przycisku za pomocą asercji niezerowej lub atrybutu Secure-call.
w każdym miejscu, w którym uzyskano dostęp.
W innych przypadkach, gdzie null jest prawidłowym przypisaniem zmiennej na podstawie
przypadku użycia aplikacji, z użyciem operatora bezpiecznego wywołania (?.) z zakończeniem elvis
(?:) może być trafniejszym sposobem bezpiecznego wyodrębniania
do wartości null lub wymuszać na rozsądną, niezerową wartość domyślną. Android Studio,
nie ma wystarczających informacji, aby to ustalić
konwersji. Domyślnie jest to asercja niepusta, musisz jednak
i w razie potrzeby dostosuj przekonwertowany kod.
Więcej informacji
Aby dowiedzieć się więcej o używaniu w projekcie zarówno kodu Kotlin, jak i kodu Java, zobacz
Wywołuję kod Java z Kotlin.
Informacje na temat idiomatycznych kodów Kotlin w istniejących interfejsach API Androida znajdziesz tutaj:
Android KTX.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[]]