Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio 3.6.1 | Error: "This project uses AndroidX dependencies" [duplicate]

I have updated my Android Studio and the targetSdkVersion (build.gradle) to 29. I migrated to AndroidX. Now the Gradle build gives me these 2 errors.

This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.

The following AndroidX dependencies are detected: androidx.versionedparcelable:versionedparcelable:1.0.0, androidx.fragment:fragment:1.0.0, androidx.slidingpanelayout:slidingpanelayout:1.0.0, androidx.core:core:1.0.0, androidx.customview:customview:1.0.0, androidx.swiperefreshlayout:swiperefreshlayout:1.0.0, androidx.interpolator:interpolator:1.0.0, androidx.loader:loader:1.0.0, androidx.drawerlayout:drawerlayout:1.0.0, androidx.viewpager:viewpager:1.0.0, androidx.collection:collection:1.0.0, androidx.localbroadcastmanager:localbroadcastmanager:1.0.0, androidx.lifecycle:lifecycle-common:2.0.0, androidx.arch.core:core-common:2.0.0, androidx.annotation:annotation:1.1.0, androidx.lifecycle:lifecycle-livedata:2.0.0, androidx.legacy:legacy-support-core-ui:1.0.0, androidx.lifecycle:lifecycle-viewmodel:2.0.0, androidx.lifecycle:lifecycle-livedata-core:2.0.0, androidx.arch.core:core-runtime:2.0.0, androidx.legacy:legacy-support-core-utils:1.0.0, androidx.documentfile:documentfile:1.0.0, androidx.cursoradapter:cursoradapter:1.0.0, androidx.lifecycle:lifecycle-runtime:2.0.0, androidx.coordinatorlayout:coordinatorlayout:1.0.0, androidx.asynclayoutinflater:asynclayoutinflater:1.0.0, androidx.print:print:1.0.0

My code is: MainActivity.java

package it.manuel.myapp;  import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.app.DownloadManager; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.DownloadListener; import android.webkit.URLUtil; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; import com.google.firebase.messaging.FirebaseMessaging;   public class MainActivity extends AppCompatActivity {      private WebView webView;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);           webView = (WebView) findViewById(R.id.webview);         webView.setWebViewClient(new WebViewClient());         webView.loadUrl("http://google.com/");         WebSettings webSettings = webView.getSettings();         webSettings.setJavaScriptEnabled(true);      }         @Override      public void onBackPressed() {         if (webView.canGoBack()){             webView.goBack();         } else {             super.onBackPressed();         }     } } 

build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.  buildscript {      repositories {         google()         jcenter()     }     dependencies {         classpath 'com.android.tools.build:gradle:3.6.1'           // NOTE: Do not place your application dependencies here; they belong         // in the individual module build.gradle files         classpath 'com.google.gms:google-services:4.2.0'     } }  allprojects {     repositories {         google()         jcenter()     } }  task clean(type: Delete) {     delete rootProject.buildDir } 

build.gradle(:app)

apply plugin: 'com.android.application'  android {     compileSdkVersion 29     defaultConfig {         applicationId "it.manuel.myapp"         minSdkVersion 29         targetSdkVersion 29         versionCode 2         versionName "1.0"         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"     }     buildTypes {         release {             minifyEnabled false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'         }     }     productFlavors {     }     compileOptions {         sourceCompatibility = 1.8         targetCompatibility = 1.8     }     buildToolsVersion = '28.0.3' }  dependencies {     implementation fileTree(include: ['*.jar'], dir: 'libs')     implementation 'com.android.support:appcompat-v7:28.0.0'     implementation 'com.android.support.constraint:constraint-layout:1.1.3'     implementation 'com.google.firebase:firebase-core:17.2.3'     implementation 'com.google.firebase:firebase-messaging:20.1.1'     testImplementation 'junit:junit:4.13'     androidTestImplementation 'com.android.support.test:runner:1.0.2'     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' }  apply plugin: 'com.google.gms.google-services' 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="it.manuel.myapp">      <uses-permission android:name="android.permission.INTERNET"/>     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>      <application         android:allowBackup="true"         android:usesCleartextTraffic="true"         android:icon="@mipmap/ic_launcher"         android:label="MyApp"         android:roundIcon="@mipmap/ic_launcher_round"         android:supportsRtl="true"         android:theme="@style/AppTheme">         <activity android:name=".MainActivity">             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                  <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>      </application>  </manifest> 

I don't understand why it no longer works.

like image 312
Sklero Mc Avatar asked Mar 03 '20 12:03

Sklero Mc


People also ask

Is AndroidX mandatory?

Need of AndroidX So from now on android hierarchy will be for only android default classes, which comes with android operating system and other library/dependencies will be part of androidx (makes more sense). So from now on all the new development will be updated in androidx.

How can I use AndroidX on Android?

Using androidx libraries in your project If you want to use androidx -namespaced libraries in a new project, you need to set the compile SDK to Android 9.0 (API level 28) or higher and set both of the following Android Gradle plugin flags to true in your gradle. properties file. android.


1 Answers

The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:

android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.

android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.

To enable jetifier, add those two lines to your gradle.properties file:

android.useAndroidX=true android.enableJetifier=true 
like image 68
Waqar UlHaq Avatar answered Sep 30 '22 10:09

Waqar UlHaq