【问题标题】:package android.support.v4.util does not exist包 android.support.v4.util 不存在
【发布时间】:2013-05-18 06:38:03
【问题描述】:

自从上次更新 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

【问题讨论】:

标签: android android-support-library


【解决方案1】:

在我的情况下,最终找到了解决方案,如记录的here

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

【讨论】:

  • 我没有检查这个答案就到了这里,我有能力投票证明了这一点。希望下次遇到此错误时(即移动 IDE 时)我会更容易找到它。
  • 工作完美。谢谢
【解决方案2】:

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

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

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

【讨论】:

  • 您可能必须将版本更新为您环境中的版本。例如,对我来说,版本是:“com.android.support:support-v4:23.0.+”
【解决方案3】:

在尝试以不同方式调整 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,您可能需要这个。

【讨论】:

    【解决方案4】:

    对于像这样使用 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'
    }
    

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

    【讨论】:

    • 谢谢。更新 gradle 文件以使用最新的支持库(截至 2016 年 4 月 14 日为 23.3.0)解决了我的问题。它使用的是 23.2.1,并在 SDK 更新后出现此问题。
    【解决方案5】:

    在我的例子中,我将 Android Googlemaps 应用 API1 移植到 API2,几个小时后我意识到我没有添加

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

    到外部库..

    希望对你有帮助

    【讨论】:

      【解决方案6】:

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

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

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

      问题将得到解决。

      【讨论】:

      • 我替换 'import androidx.core.util.LruCache;'用'import android.util.LruCache;',然后没有错误
      【解决方案7】:

      克兰德的回答:

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

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

      【讨论】:

        【解决方案8】:

        转到您的 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 子目录并重新编译。

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

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

            【讨论】:

              【解决方案11】:

              添加依赖

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

              更改构建工具

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

              为我工作。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2018-11-10
                • 1970-01-01
                • 2021-11-16
                • 1970-01-01
                • 2017-03-15
                • 1970-01-01
                • 2014-08-24
                • 1970-01-01
                相关资源
                最近更新 更多