11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutterのバージョンを上げるとエラーが出る対処法 'deprecated Android v1' 'app:compileDebugKotlin'

Posted at

以前まで動いていたプロジェクトが動かなくなりました。原因は共通で使用しているFLutterのバージョンを上げたことです。プロジェクトのバージョンも上げようとすると結構色々いじらなければなりませんでした。対処法をまとめました。

エラー例 1
Build failed due to use of deprecated Android v1 embedding.
エラー例 2
compileSdkVersion 31
エラー例 3
Execution failed for task ':app:compileDebugKotlin'.

Android v2 へバージョンアップ

★★マークのところが変更点です。

android/app/src/main/Androidmanifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.appname">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <application
        android:name="${applicationName}" ★★
        android:label="appname"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="*****"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <meta-data ★★
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>                  

Sdk をバージョンアップ

android/app/build.gradle
compileSdkVersion 31 

compileSdkVersion を変更します(2カ所に注意)

Kotlin をバージョンアップ

android/build.gradle
buildscript {
    ext.kotlin_version = '1.4.32' ★★
    repositories {
        google()
        jcenter()
    }
}

ext.kotlin_version を変更します。

:warning: ビルドで次のようなエラーが出る時
e: 〜略〜/android/app/src/main/kotlin/com/example/new_video/MainActivity.kt: (5, 7): Redeclaration: MainActivity
エラーにあるパスに今は使っていないものが残ってたので消したら治りました。

gradle をバージョンアップ

android/build.gradle
buildscript {
    ext.kotlin_version = '1.4.32'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
*****
android/gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip ★★
android/app/src/main/Androidmanifest.xml
*****
    <application
        android:name="${applicationName}" 
        android:label="appname"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="*****"
            android:hardwareAccelerated="true"
            android:exported="true" ★★
            android:windowSoftInputMode="adjustResize">
*****              

2カ所を 7.0.2 にします(他のバージョンでもOK)
今回の7.0から2カ所バージョンを同じにしたそうです。
昔は gradleが 3.5.0 wrapperが 5.6.2-all.zip とバージョンが違っていました。
3つ目の android:exported="true" はエラーが出たら追加してください。

まとめ

今回は環境まわりについて記事にしました。こういうのは経験と繰り返しですね。本当に1つのバージョンが変わるだけで周りが引っ張られます。
Flutter は Google が面倒を見てくれると信じてやっていこうと思います。やはり Android、iOS、Web ができるのが魅力ですよね。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?