在为版本为>的设备构建时,Android Studio无法找到资源5

时间:2017-03-05 05:47:09

标签: android gradle

当我尝试使用Android版本>为Android设备构建它时,我发现了一个奇怪的行为。在linux下5.0(棒棒糖)。

错误消息是:

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清理我的项目并重新导入我的项目但似乎没有任何工作直到现在。

2 个答案:

答案 0 :(得分:1)

根据这个问题: 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
    }
    ...
}

答案 1 :(得分:0)

经过一些测试后,它似乎与 即时运行 功能有关...一旦我停用它,一切都按预期工作。