为版本 > 5.0 的设备构建时,Android Studio 找不到资源

标签 android gradle

当我尝试在 Linux 下为 Android 版本 > 到 5.0 (lollipop) 的 android 设备构建项目时,我发现我的项目有一个奇怪的行为。

错误信息是:

Error:(5, 28) No resource found that matches the given name (at 'versionName' with value '@string/Application_Version').

消息指向我的 AndroidManifest.xml 文件,其中包含:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.testApplication"
      android:versionCode="1"
      android:versionName="@string/Application_Version"
      split="lib_dependencies_apk">
</manifest>

当我在低于 5.1 的设备上测试我的应用程序时,它按预期工作,没有任何警告/错误(因为字符串 Application_Version 存在并且被完美找到)但是当我尝试5.1 或更高版本的设备(真实的或模拟的),它向我抛出此消息。

我最近将我的 Android Studio 更新到 2.3,因为它会产生此错误消息。使用 AS 2.2 我没有任何问题...

我已经尝试通过做一些我在 SO 上发现的类似问题来解决这个问题,比如清理缓存并重新启动,手动删除构建文件,使用 ./gradlew clean 清理我的项目并重新导入我的项目,但似乎没有任何效果直到现在。

最佳答案

根据这个问题: https://code.google.com/p/android/issues/detail?id=235893

您必须将 versionName 移动到 app/build.gradle 文件中。如果您想根据这个 StackOverflow 问题访问 xml 布局文件中的 versionName: Reference build.gradle versionName attribute in xml layout

你应该这样做:

    android {
...
    defaultConfig {
        applicationId "se.test.myapp"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    ...
    applicationVariants.all { variant ->    
        variant.resValue "string", "versionName", variant.versionName
    }
    ...
}

关于为版本 > 5.0 的设备构建时,Android Studio 找不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604987/

相关文章:

android - 使用 gradle 从 Intellij IDEA 项目迁移到 Android-studio

java - IntelliJ 在配置后不生成元模型类(使用 gradle)

android - LinearLayout - 垂直不对齐

android - 如何使用 Room Android 插入空字段

Jenkins 和 gradle Artifactory 集成——身份验证

android - 无法解析 ':app@debug/compileClasspath'的依赖项:无法解析com.android.support:gridlayout-v7:26.1.0

android - gradle错误-com.google.common.collect.ImmutableSet.toImmutableSet()Ljava/util/stream/Collector

android - 通过我的应用程序将 pdf 发送到 android 11 中的 whatsapp 时出现发送失败错误

android - 具有静音、自动播放视频的 WebView 会暂停其他音频源

Android CameraX 图像旋转