33

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

我正在使用 actionbarsherlock,它包含 android support 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
4

11 回答 11

30

就我而言,最终找到了解决方案,如下所述

  • 确保您已使用 SDK 管理器下载了Android 支持库。
  • 在应用程序项目的根目录中创建一个libs/目录。
  • 将 JAR 文件从 Android SDK 安装目录(例如<sdk>/extras/android/support/v4/android-support-v4.jar)复制到应用程序的项目libs/目录中。
于 2014-04-09T13:55:44.507 回答
14

如果您正在使用Gradle,我还必须将此行添加到我的 inner 的依赖项部分build.gradle,即您指定minSdkVersionand的文件targetSdkVersion

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

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

于 2014-08-02T18:26:41.813 回答
14

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

简而言之 - 您可以通过以下方式解决它jetifier

npm install --save-dev jetifier npx jetify

从包文档:

如果您使用带有未转换为 AndroidX 的本机 Java 代码的 React Native 模块,并且您的应用程序是 AndroidX,您可能需要这个。

于 2019-07-06T05:54:55.343 回答
12

对于那些使用 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

请记住从配置中删除这个 all*.exclude 模块:'support-v4'

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

...尽管我可能是一个愚蠢的错误:)

于 2016-02-29T16:20:12.280 回答
4

就我而言,我正在将一个 Android Googlemaps 应用 API1 移植到 API2,几个小时后我意识到我没有添加

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

到外部库..

希望这可以帮助

于 2013-10-12T04:42:30.290 回答
3

Step-1:在AndroidStudio3.3或以上版本打开Project,等待工程加载完成。

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

第 3 步:查看下方 AndroidStudio 控制台中的更改,然后单击“Do Refactor”

该问题将得到解决。

于 2019-06-20T15:41:53.207 回答
2

起重机的回答:

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

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

于 2016-05-20T22:06:46.683 回答
1

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

于 2014-10-29T18:11:13.983 回答
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

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

于 2014-06-07T02:17:14.717 回答
1

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

于 2016-03-01T08:36:30.860 回答
1

添加依赖

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

更改构建工具

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

为我工作。

于 2017-12-12T11:00:22.813 回答