Преобразование существующего проекта Flutter Kotlin в проект Flutter Java - PullRequest
1 голос
/ 27 октября 2019

Я создал проект Flutter, используя значения по умолчанию: Kotlin для Android и Swift для iOS. В середине проекта мне нужно было интегрировать сторонний Android SDK, который требует Java. Могу ли я преобразовать проект Flutter в Java для Android после создания?

Я знаю, что вам потребуется использовать каналы платформы для интеграции нативного кода с моим приложением Flutter, это не мое дело.

1 Ответ

0 голосов
/ 29 октября 2019

У меня была такая же проблема, для меня это решение работает.

  1. Переместить папку com.example.test_app (любое ваше имя) из android / app / src / main / kotlin -> android / app / src / main / java
  2. Замените MainActivity.kt на версию Java или скопируйте сюда

    package com.example.test_app;
    
    import android.os.Bundle;
    import io.flutter.app.FlutterActivity;
    import io.flutter.plugins.GeneratedPluginRegistrant;
    
    public class MainActivity extends FlutterActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GeneratedPluginRegistrant.registerWith(this);
      }
    }
    
  3. Удалите следующий код android / app / build.grandle

    ...
    apply plugin: 'kotlin-android'
    ...
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
    
  4. Там же замените следующее:

    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    }
    

    на

    dependencies {
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...