当我尝试使用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清理我的项目并重新导入我的项目但似乎没有任何工作直到现在。
答案 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)
经过一些测试后,它似乎与 即时运行 功能有关...一旦我停用它,一切都按预期工作。