Как изменить android API 26 на 29+ в Android Studio? - PullRequest
0 голосов
/ 30 апреля 2020

Как перейти с API 26 на 29+, я получаю сообщение об ошибке при попытке изменить его в структуре проекта на 'com.android.support:appcompat-v7:26.1.0', 'com.android.support:design:26.1.0', 'com.android.support.constraint:constraint-layout:1.0.2', 'com.android.support:cardview-v7:26.1.0' Если я обновляю следующие плагины, я получаю сообщение об ошибке со всеми моими ресурсами файл. Есть ли способ миграции на androidX без изменения файлов макета. Мне нужно изменить код с <android.support.constraint.ConstraintLayout> на <androidx.constraintlayout.widget.ConstraintLayout> во всем файле ресурсов. Как я могу загрузить приложение в Google Play, ведь требуется API 29?

Это мой build.gradle

build.gradle (уровень приложения)

apply plugin: 'com.android.application'
android {
    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }
    compileSdkVersion 29
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "ak.wp.meto"
        minSdkVersion 17
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support:design:26.1.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:cardview-v7:26.1.0'
    //retrofit, gson
    compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    //firebase
    compile 'com.google.firebase:firebase-core:11.6.0'
    compile 'com.google.firebase:firebase-messaging:11.6.0'
    compile 'com.google.firebase:firebase-ads:11.6.0'
    //glide
    compile 'com.github.bumptech.glide:glide:4.3.1'
    //circular imageview
    compile 'de.hdodenhof:circleimageview:2.1.0'
}
apply plugin: 'com.google.gms.google-services'

build.gradle (уровень проекта)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

Это мой файл макета activity_main. xml

 <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:openDrawer="start">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <include
                layout="@layout/toolbar_main"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
            <include layout="@layout/content_main" />
        </LinearLayout>
        <android.support.design.widget.NavigationView
            android:id="@+id/navigationView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@color/white"
            android:fitsSystemWindows="true"
            app:headerLayout="@layout/nav_header_main"
            app:menu="@menu/menu_drawer" />
    </android.support.v4.widget.DrawerLayout>

1 Ответ

0 голосов
/ 30 апреля 2020

Для поддержки API 29 вам необходимо перенести проект на AndroidX, это обязательно. Так как android X использует разные библиотеки, вам необходимо изменить свои зависимости и внести некоторые изменения в файлы макетов.

Но в Android Studio есть утилита для переноса вашего кода в AndroidX. В этом случае вам не нужно менять свои библиотеки или макеты.

Найдите опцию «Перенести на AndroidX» под рефакторингом в Android Studio.

Когда это будет сделано, вы получите очень основные c ошибки, которые можно легко исправить.

...