包android.support.v4.util不存在

时间:2013-05-18 06:38:04

标签: android android-support-library

自上次更新android支持库以来,我遇到了导入LruCache的问题。 Eclipse,现在甚至是android studio,一直说android.support.v4.util包不存在。

我正在使用actionbarsherlock,它包含了android支持v4并且没有显示任何错误。在最后一次SDK更新之前,我的应用程序运行正常。发生了什么变化?我该如何解决这个问题?

以下错误显示:

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

11 个答案:

答案 0 :(得分:29)

就我而言,最终找到了解决方案,记录为here

  • 确保您已使用SDK Manager下载 Android支持库
  • 在应用程序项目的根目录中创建 libs / 目录。
  • 将Android SDK安装目录(例如<sdk>/extras/android/support/v4/android-support-v4.jar)中的JAR文件复制到应用程序的项目 libs / 目录中。

答案 1 :(得分:13)

如果您使用的是Gradle,我还必须将此行添加到内部build.gradle的依赖项部分,即您指定minSdkVersiontargetSdkVersion的文件}:

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

我相信'19'应该是你的compileSdkVersion。如果我错了,它会告诉你它应该是什么。

答案 2 :(得分:11)

对于那些使用gradle导入支持库的人:

// 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

请记住从配置中删除所有* .exclude模块:'support-v4'

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

......虽然我可能是一个假的错误:)

答案 3 :(得分:4)

在我的情况下,我将Android Googlemaps应用API1移植到API2,经过几个小时,我意识到我没有添加

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

到外部图书馆..

希望这有帮助

答案 4 :(得分:2)

得到了答案:

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

为我工作。但是(至少在我的情况下)'19'应匹配compileSdkVersion

答案 5 :(得分:1)

转到Android SDK的目录并:

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

在这个jar文件中,你可以看到你在应用程序中使用过的一个类(在v4 / util下)。

     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

所以错误“package android.support.v4.util不存在”只是意味着你必须将上面的jar文件复制到你的libs子目录并重新编译。

答案 6 :(得分:1)

在我的情况下,问题是从sdk安装文件夹引用jar,将jar复制到项目的libs文件夹,添加到构建路径实际上解决了问题。

答案 7 :(得分:1)

在我使用Android Studio的情况下,这个错误出现在一个正在运行的项目中间,尽管有很多鬼混,但仍然拒绝消失。我最终通过向Gradle文件添加单个空格字符来强制执行Gradle Sync操作。 Gradle Sync立即修复了它。

答案 8 :(得分:1)

  

添加依赖

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

更改构建工具

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

为我工作。

答案 9 :(得分:1)

尝试以不同方式调整build.gradle后,最终得到以下解决方案: https://github.com/kmagiera/react-native-gesture-handler/issues/394#issuecomment-508358572

简而言之-您可以使用jetifier解决它:

npm install --save-dev jetifier npx jetify

来自软件包文档:

  

如果您将React Native模块与未转换为AndroidX的本机Java代码一起使用,而您的应用程序是AndroidX,则可能需要这样做。

答案 10 :(得分:0)

步骤1:在AndroidStudio3.3或更高版本中打开项目,请等到项目加载完成。

第2步:右键单击“应用”->“重构”->“迁移到AnroidX”

步骤3:在下面的AndroidStudio控制台中查看更改,然后点击“执行重构”

问题将得到解决。