Konvertieren Sie alle Android-Apps (Java) in Kotlin

Überblick

Ich wollte die App meines Unternehmens in Java-> Kotlin konvertieren, also habe ich zuerst versucht, alles mit meiner Android-App (der gesamte Java-Code) in Kotlin zu konvertieren.

Über die damals getroffenen Maßnahmen. Es hat nicht viel Mühe gekostet, wahrscheinlich weil meine App klein war.


Ziel


Meine Android, Kotlin Erfahrung


App auf Kotlin umgestellt

Eine periphere Such-App namens PLACE SEARCH.

qiita.gif

https://play.google.com/store/apps/details?id=com.hikarusato.placesearch


Entsprechende Arbeitskräfte

2 Tage


Weise

  1. Wenn Kotlin nicht in Android Studio enthalten ist, installieren Sie das Plugin. Es gibt Möglichkeiten, dies in verschiedenen Artikeln zu tun.
    http://blog.ch3cooh.jp/entry/20160217/1455676200
  2. Bearbeiten Sie build.gladle.

build.gradle (für das projekt)


buildscript {
        
    ext.kotlin_version = '1.0.6'//hinzufügen
    repositories {
        jcenter()
    }
    dependencies {
        
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"//hinzufügen
    }
}

bash:build.gradle(Module:App)


apply plugin: 'kotlin-kapt'//Hinzugefügt, wenn Sie Anmerkungen in Kotlin verfügbar machen möchten.
apply plugin: 'kotlin-android'//hinzufügen.

・
・
・

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"//hinzufügen.
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"//Wird bei Verwendung von Reflection hinzugefügt (Erwerb des Eigenschafts- oder Klassennamens)
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"//Wird bei Verwendung eines Testprojekts hinzugefügt
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"//Wird bei Verwendung eines Testprojekts hinzugefügt
}

Referenz: https://kotlinlang.org/docs/reference/using-gradle.html

  1. Wählen Sie in der Android-Projektnavigation den Ordner app-> java und dann das Hauptmenü [Code] -> [Java-Datei in Kotlin-Datei konvertieren]. スクリーンショット 2017-02-04 23.51.16.png

Dadurch wird der gesamte Java-Code in Kotlin-Code konvertiert.


Crushed-Kompilierungsfehler


-NullableType-Objekt. Hinzufügen !! oder? Wo es im Methodenformat ist.

Beispiel


        //Java in Android Studio->Nach der Umstellung auf Kotlin

        mWaitDialog = ProgressDialog(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
        //Hier mWaitDialog!!.setMessage or  mWaitDialog?.Ich erhalte eine Fehlermeldung, wenn ich zu setMessage wechsle
        mWaitDialog.setMessage(resources.getString(R.string.now_updating))


- Private Enums in derselben Klasse innerhalb der internen Klasse können nicht erkannt werden.

Kotlin-Code nach automatischer Konvertierung


class A {
   private enum class TYPE {
        TYPE_1,
        TYPE_2
    }

   internal class B {
        var state = TYPE.TYPE_1//Fehler, dass enum TYPE hier nicht erkannt werden kann
   }
}

Überarbeitet


class A {
    //Privat entfernen
    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

   internal class B {
        var state = TYPE.TYPE_1
   }
}

-Java Enum.valueOf (Enum name.class, "Enum enumeration name") wird nicht korrekt konvertiert

Kotlin-Code nach automatischer Konvertierung


    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

・
・
・

    Enum.valueOf<TYPE>(TYPE::class.java!!, "Aufzählungsname aufzählen")//Enum.valueOf<TYPE>Fehler in

Überarbeitet


    enum class TYPE {
        TYPE_1,
        TYPE_2
    }

・
・
・

    TYPE.valueOf("Aufzählungsname aufzählen")//Aufzählungsname.Wechseln Sie in das Format valueOf

Crushed Laufzeitfehler


・ Null, Parameter favicon bei ~ .onPageStarted

Vor der Korrektur



override fun onPageStarted(view: WebView, url: String, favicon: Bitmap) {


Überarbeitet



//Favicon kann also null sein?Anfügen.
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {


-Java.lang.IllegalStateException: ViewUtils.createNaviTran… Transit, Enter, NextAnim) darf nicht null sein


Vor der Korrektur



 override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation

Überarbeitet


//Die Animation kann also null sein?Anfügen.
 override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation?

Vor- / Nachteile der Kotlin-Umwandlung (Abformung)


verdienen




Fehler



Zusammenfassung


Recommended Posts

Konvertieren Sie alle Android-Apps (Java) in Kotlin
[Android] Konvertieren Sie Android Java-Code in Kotlin
[Android] Konvertieren Sie Map in JSON mit GSON mit Kotlin und Java
Geben Sie Optionen für die Java / Kotlin-Kompilierungszeit für Android-Apps an
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 3
Kotlin-Klasse zum Senden an Java-Entwickler
[Android] Konvertieren Sie Android Java-Code in Kotlin
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 2
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 1
So konvertieren Sie Java Base
[Java] Konvertiert ArrayList in Array
Siehe C ++ im Android Studio-Modul (Java / Kotlin)
Kotlin-Klasse zum Senden an Java-Entwickler
[Java] Konvertiere 1 in N Liste in Karte
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
Verwenden Sie ViewModel, um Android-Apps grob zu drehen
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
[Java] Konvertiert Null vom Objekttyp in String-Typ
Konvertieren Sie SVG-Dateien in Java in PNG-Dateien
Kotlin-Scope-Funktionen zum Senden an Java-Entwickler
Erstellen von Java-Webanwendungen für Azure-Webanwendungen
Memo für die Migration von Java nach Kotlin
Von Java nach C und von C nach Java in Android Studio
Kotlin vs. Java: Welche Programmiersprache Sie für Ihre Android-App auswählen sollten
Zusammenfassung der guten Punkte und Vorsichtsmaßnahmen bei der Konvertierung der Java Android-Anwendung in Kotlin
Kotlin-Funktionen und Lambdas zum Senden an Java-Entwickler
[Android] So konvertieren Sie eine Zeichenfolge in resourceId
Einführung in Kotlin in ein bestehendes Java Maven-Projekt
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
[Java] Konvertieren Sie DB-Code mit enum in einen Codewert
Grundeinstellungen für das Umschreiben von Java-Projekten in Kotlin
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Erste Schritte mit Kotlin zum Senden an Java-Entwickler
[Java] Einführung in Java
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Konvertieren Sie verschachtelte Java-Beans in das Format aaa.bbb [0] .ccc
Einführung in Java
Wo Java-Programmierer dazu neigen, über Kotlin zu stolpern
Wie schreibe ich Java String # getBytes in Kotlin?
Was Java-Unerfahrene getan haben, um Kotlin zu studieren
Technische Ursachen und Gegenmaßnahmen für Punkte, die von Android-Apps und Kotlin abhängig sind (3. Verarbeitung in Bezug auf Android-Bilder)
Starten Sie Docker von Java aus, um Office-Dokumente in PDF zu konvertieren
<java> Zip-Datei lesen und direkt in String konvertieren
Konvertieren Sie Java Enum Enumeration und JSON von und nach Jackson
Beispielcode zum Konvertieren von List in List <String> in Java Stream
[Java] Konvertieren Sie Zeichenfolgen in Groß- / Kleinschreibung (AOJ⑨ - Swap in Groß- / Kleinschreibung)
[Android / Java] Richten Sie eine Schaltfläche ein, um zu Fragment zurückzukehren
[Android Studio] [Java] So fixieren Sie den Bildschirm vertikal
Verwendung von Truth (Assertion Library für Java / Android)
Java-Anwendungen konvertieren Word-Dokumente (DOC / DOCX) in PDF
Einführung von New Relic in Java-Apps, die auf Heroku ausgeführt werden
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
[Kotlin] Konvertieren Sie ZonedDateTime in String, indem Sie das Format angeben
[Java] Konvertieren Sie JSON in Java und Java in JSON-How to use GSON and Jackson-
So richten Sie Android OR Mapper "Orma" (Kotlin) ein
[Java] PDF-Version konvertieren
Änderungen von Java 8 zu Java 11