Amit
Amit

Reputation: 3990

package android.support.v4.util does not exist

Since the last update for android support libraries, I am having issues with importing LruCache. Eclipse, and now even android studio, keep saying that package android.support.v4.util does not exist.

I am using actionbarsherlock and it has included android support v4 and shows no errors. My application was working fine before this last SDK update. What has changed? How do I fix this?

Here is the error that shows:

java: /Users/amit/App/src/com/app/EMCache.java:5: package android.support.v4.util does not exist
java: /Users/amit/App/src/com/app/EMCache.java:9: cannot find symbol
symbol  : class LruCache
location: class com.app.EMCache
java: /Users/amit/App/src/com/app/EMCache.java:20: cannot find symbol
symbol  : class LruCache
location: class com.app.EMCache

Upvotes: 33

Views: 88999

Answers (11)

Valentin Kantor
Valentin Kantor

Reputation: 1844

After trying tweaking build.gradle different ways, ended up with solution found here: https://github.com/kmagiera/react-native-gesture-handler/issues/394#issuecomment-508358572

in short - you can solve it with jetifier:

npm install --save-dev jetifier npx jetify

From the package docs:

If you use React Native modules with native Java code that isn't converted to AndroidX, and your app is AndroidX, you probably need this.

Upvotes: 15

sent.ror
sent.ror

Reputation: 187

Step-1: Open Project in AndroidStudio3.3 or above, wait until loading of the project completes.

Step-2: Right click 'app' -> Refactor -> Migrate to AnroidX

Step-3: Review the changes in AndroidStudio console below and click 'Do Refactor'

The issue will be fixed.

Upvotes: 3

Vipin Yadav
Vipin Yadav

Reputation: 767

add dependency

dependencies { compile 'com.android.support:support-v4:+'}

Change Build Tool

 dependencies {  classpath 'com.android.tools.build:gradle:2.3.0'}

Worked for me.

Upvotes: 1

ttguy
ttguy

Reputation: 23

craned's answer:

dependencies {
    compile "com.android.support:support-v4:19.0.+"
}

worked for me. But (in my case at least) the '19' should match the compileSdkVersion

Upvotes: 2

craned
craned

Reputation: 3051

If you're using Gradle, I had to also add this line to the dependencies section of my inner build.gradle, the file where you specify your minSdkVersion and targetSdkVersion:

dependencies {
  compile "com.android.support:support-v4:19.0.+"
}

I believe the '19' is supposed to be whatever your compileSdkVersion. If I'm wrong, it will tell you what it's supposed to be.

Upvotes: 14

emrys57
emrys57

Reputation: 6806

In my case with Android Studio, this error appeared in the middle of a working project and refused to disappear despite much fooling around. I finally forced a Gradle Sync operation by adding a single space character to a Gradle file. The Gradle Sync fixed it instantly.

Upvotes: 1

mogile_oli
mogile_oli

Reputation: 2188

For those importing the support libraries using gradle like this:

// compat libraries
compile 'com.android.support:support-v4:23.2.0' // v4
compile 'com.android.support:appcompat-v7:23.2.0' // v7
compile 'com.android.support:support-v13:23.2.0' //v13

Remember to remove this all*.exclude module: 'support-v4' from configurations

configurations {
    //all*.exclude module: 'support-v4'
}

...might have been a dummy mistake from my part though :)

Upvotes: 12

Khurram Shehzad
Khurram Shehzad

Reputation: 1010

In my case the problem was referencing the jar from sdk installation folder, copying the jar to project's libs folder adding to build path actually resolved the issue.

Upvotes: 1

Peter Teoh
Peter Teoh

Reputation: 6713

Go to your Android SDK's directory and:

jar tvf ./extras/android/support/v13/android-support-v13.jar |grep v4.*util

And within this jar file you can see one of the classes (under v4/util) you have used in your applications.

     0 Wed Mar 26 20:29:48 SGT 2014 android/support/v4/util/
  3373 Wed Mar 26 20:29:48 SGT 2014 android/support/v4/util/ArrayMap.class
  5329 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections.class
  1625 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/ContainerHelpers.class
  3677 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections$KeySet.class
  1220 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/DebugUtils.class
  3435 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/AtomicFile.class
  1287 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/LogWriter.class
  3701 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections$ValuesCollection.class
  4446 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections$EntrySet.class
  5910 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/SparseArrayCompat.class
  3273 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/TimeUtils.class
  5776 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/LongSparseArray.class
  5680 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/LruCache.class
  3341 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections$MapIterator.class
  1575 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/MapCollections$ArrayIterator.class
  2439 Wed Mar 26 20:29:48 SGT 2014 android/support/v4/util/ArrayMap$1.class
  8611 Wed Mar 26 20:29:46 SGT 2014 android/support/v4/util/SimpleArrayMap.class

So the error "package android.support.v4.util does not exist" simply means you have to copy the above jar file to your libs subdirectory and recompile.

Upvotes: 1

Danny Schoemann
Danny Schoemann

Reputation: 1350

In my case, the solution was eventually found as documented here:

  • Make sure you have downloaded the Android Support Library using the SDK Manager.
  • Create a libs/ directory in the root of your application project.
  • Copy the JAR file from your Android SDK installation directory (e.g., <sdk>/extras/android/support/v4/android-support-v4.jar) into your application's project libs/ directory.

Upvotes: 30

user9869932
user9869932

Reputation: 7337

In my case I was porting an Android Googlemaps app API1 to API2, and after many hours I realized I was not adding

C:\Program Files\..(your_path_)..
  ..\adt-bundle-windows-x86_64\sdk\extras\android\support\v4

to External Libraries..

Hope this helps

Upvotes: 4

Related Questions