自上次更新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
答案 0 :(得分:29)
就我而言,最终找到了解决方案,记录为here:
<sdk>/extras/android/support/v4/android-support-v4.jar
)中的JAR文件复制到应用程序的项目 libs / 目录中。答案 1 :(得分:13)
如果您使用的是Gradle
,我还必须将此行添加到内部build.gradle
的依赖项部分,即您指定minSdkVersion
和targetSdkVersion
的文件}:
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控制台中查看更改,然后点击“执行重构”
问题将得到解决。