質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.60%

Android Studio3.3にアップグレードした際の各SDKバージョンについて

解決済

回答 2

投稿

  • 評価
  • クリップ 3
  • VIEW 4,511

score 21

いつもお世話になっております。

最近、Android Studio3.2.1から3.3に更新しました。
何も考えずに、メッセージに従って更新処理を進めたせいで
開発したアプリが異常終了する不具合が発生してしまいました。
(3.2.1のままでも十分だったので、とても後悔しています)

・Android6.0用のアプリを開発中です。
・kotlinを使っています。

エラーを解析してみましたが、なんとなくバージョン関係がちぐはぐになっているように
読み取れたのでgradle中のバージョンの値を色々と変えてたのですが、なかなかうまくいきません。

「The specified Android SDK Build Tools version (23.0.1) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.3.0.」
というメッセージも出ています。
Android SDK Build Tools versionが最小バージョン(28.0.3)を下回っているということなのですが、
Android6.0用が何なのかわかりません。

build.gradle について

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 23
    defaultConfig {
        applicationId "com.example.asakuray.myapplication"
        minSdkVersion 21
        //noinspection ExpiredTargetSdkVersion
        targetSdkVersion 23
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
    buildToolsVersion '23.0.1'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:23.4.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'org.altbeacon:android-beacon-library:2+'
    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'
}


まだまだスキルが浅く、なんちゃって開発者なので、とんちんかんな書き方をしていると思います。

Android6.0用のアプリを開発するためには、
どのような環境、設定にしないといけないのか、ご指摘いただけるとありがたいです。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Wind

    2019/01/21 15:03

    質問の直接の回答ではありませんが、AndroidStudioは過去のバージョンもアーカイブされていますので、ダウングレードすることも出来ます。
    ただ、今アーカイブを見たら3.2.1は無くて3.2.0まででした。

    キャンセル

  • keicha_hrs

    2019/01/21 20:25 編集

    こうしたらどうかという回答は後で書きますが、その前に。Android Developersのサイトは複数の言語表示に対応してはいるのですが、日本語は非常に対応が悪くかなり古い情報しか出てきません。このサイトは日本語で見てはならないと考えるべきでしょうね。ページの一番下にある言語選択をEnglishに変えれば、アーカイブに3.2.1も存在します。

    キャンセル

回答 2

+1

Android Studioのスタート画面からならば、右下のConfigureからSDK Managerを選択して開き、SDK Toolsタブをクリックします。そして、右下の方にあるShow Package Detailsにチェックを入れてください。すると、Android SDK Build-Toolsがリスト展開できるようになります。このリストの一番下にある28.0.3にチェックを入れてOKかApplyをクリックすればインストールされます。

その後、対象のプロジェクトを開いて、質問に記されている

    buildToolsVersion '23.0.1'


の行を除去してしまいましょう。それでビルドしたら進展があるんじゃないかと思います。ただ、他にもアップグレードの影響はあるかもしれないので、違う障害にぶつかるかもしれませんが。

なお、buildToolsVersionという記述は、Android Studio 3.0のときにすでに除去することが推奨されています。その場合、「自動的に最適なBuild-Toolsを選択する」という動作になります。

(参考資料)
buildToolsVersion 省略時の挙動 | Qiita


もちろん、Windさんのコメントにある通り、Android Studio 3.2.1に戻してしまうことも一つの解ではあるでしょう。


超余談。
私の心の声
ここには「1日2日遅れて」と記していますが、「1週間1ヶ月遅れて」と読み替えても差し障りはないと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/22 08:44 編集

    ご回答ありがとうございました。
    buildToolsVersionも削除するようにしました。
    おかげ様で、同期は無事に完了することができました。

    ですが、実行時にクラッシュしてしまう問題が発生してしまいました。
    エラーログを見てみると、
    W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m -j3 --instruction-set-variant=cortex-a7 --instruction-set-features=default --no-watch-dog --dex-file=/data/app/com.example.******.myapplication-2/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@com.example.******.myapplication-2@split_lib_slice_6_apk.apk@classes.dex) because non-0 exit status
    01-22 08:10:48.883 2939-2939/? E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@com.example.******.myapplication-2@split_lib_slice_7_apk.apk@classes.dex: Permission denied
    ******apk@classes.dex: Permission denied
    というログが数行あったので、これをキーにネット検索等したところ、
    実行時のパーミッションがどうのという以下のサイトにたどり着きました。
    https://developer.android.com/training/permissions/requesting
    読んでみましたが、よくわかりません。
    これまで特に意識してこなかったので面食らっています。
    ちなみにManifestには、BLE使用のためのパーミッションは入れています。

    新たに何か宣言が必要なのでしょうか。
    以上、よろしくお願いいたします。

    キャンセル

  • 2019/01/22 10:46

    やっぱりねえ。他にもいろいろ引っかかりそうですね。今、出先なんで、時間ができたら調べてみます。回答した手前もあるんで。

    キャンセル

  • 2019/01/22 15:35 編集

    お忙しいところ申し訳ありません。
    お付き合いいただき、本当にありがとうございます。

    その後、自分なりに色々やって、パーミッションどうのこうのというのは
    見えなくなりました。
    が、相変わらず、アプリを起動すると強制終了してしまいます。
    気になるメッセージを以下に抜粋します。

    01-22 15:26:54.133 20272-20272/? E/memtrack: Couldn't load memtrack module (No such file or directory)
    01-22 15:26:54.133 20272-20272/? E/android.os.Debug: failed to load memtrack module: -2

    01-22 15:26:55.468 20304-20304/com.example.******.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.******.myapplication, PID: 20304
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.******.myapplication/com.example.******.myapplication.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

    和訳したところで、何を言おうとしているのか今の自分には読み解くスキルがなく、
    混沌としています。
    何かしらご指摘いただければありがたいです。よろしくお願いします。

    キャンセル

check解決した方法

0

お騒がせして申し訳ありませんでした。
スケジュールの都合でこれ以上時間を割くわけにもいかなくなり、
以前のバージョンに戻すことにいたします。
ご協力いただいた方々に厚くお礼申し上げます。
ありがとうございました。
これからもお世話になると思いますので、よろしくお願いします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る