Android Studio and android.support.v4.app.Fragment: cannot resolve symbol

Viewed 169564

I am trying out Android Studio instead of Eclipse. I install it and then start a completely new project and follow the wizard. I add no code of my own.

Then, I right-click to create a new component, a new Fragment:

enter image description here

and choose a new fragment:

enter image description here

and as soon as I do, I see compile errors:

enter image description here

... so I start googling and find out that I need to install and reference support library 4, and that I do. When I check the build.gradle (whatever that is, new to me coming from Eclipse), I see:

enter image description here

but I change that to

enter image description here

because they said so here. After recompiling and all that, the error is still there. I then reference the .jar-file directly, like this:

enter image description here

and again do recompile etc, but that doesn't help either.

This behaviour seems very strange to me. What am I missing here? This is the SDK Manager view:

enter image description here

25 Answers

The symptom of this problem is usually that the build works fine from the command line (which means your build.gradle file is set up right) but you get syntax highlighting errors in the IDE. Follow This Steps To Solve The Problem: Click on Tools from the toolbar usually at the top part of your IDE, and then navigate to Android then navigate to Sync Project with Gradle Files button. We realize it's less than ideal that the IDE can't just take care of itself instead of forcing you to manually sync at the right time; we're tracking progress on this in https://code.google.com/p/android/issues/detail?id=63151

replace this line of code

import android.support.v4.app.FragmentActivity;

with

import androidx.fragment.app.FragmentActivity;

and you are done.

I'm using buck and it seems like by removing the /.idea/libraries in your project folder and sync gradle again works for me.

Android studio has option to manage dependencies. Follow path.

  1. Click on File, then select Project Structure
  2. Choose Modules "app"
  3. Click "Dependencies" tab
  4. Click on the + sign, choose Library Dependencies
  5. Select support-v4 or other libraries as needed and click OK

FYI check link stackoverflow.com/a/33414287/1280397

2021 here -- if, like me, you sadly have to just get some new code working with legacy junk that hasn't been touched in five+ years and still uses the support libs AND can't be changed before the deadline, you might try taking a look in gradle.properties for:

android.useAndroidX=true
android.enableJetifier=true

and commenting them if present. Android Studio 4.1.2 inserts them in new projects by default and they seem to get in the way of using support libs. Not surprising given the names, but the fact that they get auto-added to new projects is a little obnoxious.

File -> "Invalidate caches/Restart" This worked for me.

Hrrm... I dont know how many times this has happend so far: I test, try, google, test again and mess around for hours, and when I finally give up, I go to my trusted Stackoverflow and write a detailed and clear question.

When I post the question, switch over to the IDE and boom - error gone.

I can't say why its gone, because I change absolutely nothing in the code except for that I already tried as stated above. But all of a sudden, the compile error is gone!

In the build.gradle, it now says:

dependencies {
    compile "com.android.support:appcompat-v7:18.0.+"
}

which initially did not work, the compile errors did not go away. it took like 30 min before the IDE got it, it seems... hmm...

=== EDIT === When I view the build.gradle again, it has now changed and looks like this:

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile "com.android.support:appcompat-v7:18.0.+"
}

Im not really sure what the appcompat is right now.

I encountered this issue and tried everything including File > Invalidate Caches but nothing worked. The reason this issue was happening for me was because I had external projects that were using a different AppCompat version to my main gradle file.

After I updated all gradle files to be the same version the compile error went away.

Closing and Re-Importing project worked for me.

For me the cause of problem was broken class path:

Library Gradle: com.android.support:support-v4:28.0.0@aar has broken classes path:   
/Users/YOUR_USER/.gradle/caches/transforms-1/files-1.1/support-v4-28.0.0.aar/0f378acce70d3d38db494e7ae5aa6008/res

So only removing transforms-1 folder and further Gradle Sync helped.

I'm currently using Android Studio Arctic Fox | 2020.3.1 Patch 3. I've tried the most upvoted answers here but sadly none worked for me. I looked down my ".idea/libraries" folder and saw no gradle file for "Fragments".

Here's how I fixed it:

I go to File > Project Structure > Dependencies > . There's a small "+" there to Add Dependency (or do Alt+Insert) > Library Dependency. Type on the search box of Step 1 the following: 'androidx.fragment' then hit Search. A list will show below a list of libraries and go click the first one, then Done. The window will disappear then click Apply. It will fetch Gradle Build Models then will automatically rebuild/update to your project.

My problem was with Glide. Pasting this in build.gradle and execute "Sync project with gradle files" works perfectly:

dependencies {

  implementation 'com.github.bumptech.glide:glide:4.12.0'
  // Glide v4 uses this new annotation processor -- see https://bumptech.github.io/glide/doc/generatedapi.html
  annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

}

Hope this help someone.

Related