[英]package android.support.v4.app does not exist ; in Android studio 0.8
我最近将 android studio IDE 更新到 0.8 以使用新的 android L SDK。 首先,我导入了一个完成的 android 项目,该项目在旧版本的 android studio 中没有收到任何错误。 在 0.8 版 i 行中,例如
import android.support.v4.app.Fragment;
获取:无法解决支持,导致其余代码出现错误。 logcat 返回 101 个实例
Error:(8, 30) error: package android.support.v4.app does not exist
1 每次我在导入语句中调用支持库。
我试过了
不完全确定还需要做什么。
好的,所以我遇到了同样的问题,并在 udacity 论坛中找到了解决方案:
在 Android Studio 中:
@boernard 的答案从 Android Studio IDE 解决了这个问题,但如果您想了解幕后发生的事情,这是一个简单的 gradle 构建文件更新:
您可以在 IDE 中编辑 build.gradle 文件(左窗格: Gradle Scripts -> build.gradle (Module: app)
)或使用原始路径( <proj_dir>/app/build.gradle
)并添加/更新以下依赖部分:
dependencies {
//
// IDE setting pulls in the specific version of v4 support you have installed:
//
//compile 'com.android.support:support-v4:21.0.3'
//
// generic directive pulls in any available version of v4 support:
//
compile 'com.android.support:support-v4:+'
}
使用上述通用编译指令,您可以将代码发送给任何人,前提是他们安装了某种级别的Android Support Libraries v4
。
以上解决方案都不适合我。 最终奏效的是:
代替
import android.support.v4.content.FileProvider;
用这个
import androidx.core.content.FileProvider;
此路径从 AndroidX(重新打包的 Android 支持库)开始更新。
[由于某些原因,这个答案与 Eclipse 有关,而不是 Android Studio!]
您是否尝试过将支持库设置为您的类路径? Android 开发者网站上的 这个链接有一些关于如何做到这一点的信息。
尝试从网站执行以下步骤:
根据支持库代码创建库项目:
创建一个库项目并确保所需的 JAR 文件包含在项目的构建路径中:
您现在拥有一个用于所选支持库的库项目,您可以将其与一个或多个应用程序项目一起使用。
删除
/.idea/libraries
然后同步 gradle 来构建项目。
// 运行这个命令 - 它修复了一切
离子cordova插件添加cordova-plugin-androidx-adapter
tl;dr从您的settings.gradle
中删除所有依赖于支持库的未使用模块。
长版:
在我们的例子中,我们在一个由每个模块导入的common.gradle
文件中将支持库声明为我们所有模块(一个应用程序模块和多个库模块)的依赖项。 但是,有一个库模块未声明为任何其他模块的依赖项,因此未构建。 在每几次同步中,Android Studio 都会选择那个确切的模块作为寻找支持库的地方(这就是为什么它对我们来说似乎是随机发生的)。 由于该模块从未使用过,因此它从未构建,这反过来又导致 jar 文件不在模块的中间文件夹中。
从settings.gradle
删除这个库模块并再次同步为我们解决了这个问题。
在我的情况下,错误出现在我的项目的一个模块上。我已经通过添加解决了这个问题
dependencies {
implementation 'com.android.support:support-v4:20.0.+'
}
对应模块的 gradle 中的这种依赖关系
在 ECLIPSE LUNA 中,我通过在我的项目中使用 contet 菜单解决了这个问题:ANdroid Tools > Add support Library ...
在我的情况下,通过将字符串cordova.system.library.2=com.android.support:support-v4:+
附加到platforms/android/project.properties
文件来解决问题
对我来说,问题是由 Gradle 脚本列表中的 gradle.properties 文件引起的。 它显示为 gradle.properties(全局)并引用 C:\users\.gradle\gradle.properties 中的文件。 我右键单击它并从菜单中选择删除以将其删除。 它从硬盘上删除了文件,我的项目现在构建并运行。 我猜全局文件正在覆盖用于定位包 android.support 的东西
我的解决方案是创建一个checked
Use legacy support library
选项的项目。 项目创建成功后,只需要delete
app目录下的src
文件夹,从你的主项目中copy
src
文件夹即可。 最后,将项目与 Gradle 文件Sync
。
将此添加到 build.gradle:
allprojects {
repositories {
google()
}
}
dependencies {
implementation "com.android.support:support-core-utils:28.0.0"
}
*必须具有 minSdkVersion 14(或更高版本)
如果这些解决方案都不起作用,您需要将您的项目jetify 以完全支持AndroidX。 尝试
npm i -D jetifier
然后运行
npx jetify
您可以在此处找到更多详细信息: https ://github.com/michalchudziak/react-native-geolocation/issues/39#issuecomment-514566895,这应该可以解决问题。 让我知道这是否有效。
并确保在 gradle.properties 中添加以下内容
android.useAndroidX=true
android.enableJetifier=true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.