Android Studio在尝试生成发布签名的APK时出错,但允许您构建调试APK
当我在Android Studio 2.3.3中使用“Build APK”选项时,它会生成一个没有问题的调试APK,但当我尝试生成一个签名APK时,会出现一个错误: 生成已签名的APK:生成APK时出错。你可以找到 “消息”视图中出现错误 在“消息”视图中: 错误:应为字符串[ResourceType]类型的资源 这似乎不是密钥库或签名的问题,因为它会引导我找到一行代码,即:Android Studio在尝试生成发布签名的APK时出错,但允许您构建调试APK,android,android-studio,Android,Android Studio,当我在Android Studio 2.3.3中使用“Build APK”选项时,它会生成一个没有问题的调试APK,但当我尝试生成一个签名APK时,会出现一个错误: 生成已签名的APK:生成APK时出错。你可以找到 “消息”视图中出现错误 在“消息”视图中: 错误:应为字符串[ResourceType]类型的资源 这似乎不是密钥库或签名的问题,因为它会引导我找到一行代码,即: String color = getResources().getString(VarGlobales.color4).
String color = getResources().getString(VarGlobales.color4).substring(3);
VarGlobales只是我创建用来定义全局变量的类,当然它是正确导入的。VarGlobales.color4
带下划线,当我悬停时,它会显示:
此检查需要字符串[less…](Ctrl+F1)类型的资源
查看使用各种注释的Android API调用
支持注释(如RequiresPermission或UiThread)和标志
未按照指定正确使用API的任何调用
注释。本次检查标记的错误示例:通过
将错误类型的资源整数(如R.string)添加到
需要不同的类型(例如R.dimen)。忘记调用
在需要调用
方法,该方法需要权限,但未声明该权限
清单中的权限将资源颜色引用传递给
方法,该方法需要一个RGB整数值…以及更多。有关更多信息,请参阅
有关详细信息,请参阅位于的文档
VarGlobales.color4
是一个整数,所以据我所知,它不应该给出任何错误,因为getString()
需要一个整数ID作为参数。定义中没有我期望的值吗?它是这样的:
// In VarGlobales class
public static int color4 = R.color.teal4;
R.color.teal4
在colors.xml
中定义如下:
// In colors.xml
<color name="teal4">#00796B</color>
//In colors.xml
#00796B
奇怪的是,它在构建调试APK时没有给出任何错误,所以一开始它不应该是代码问题。它必须是
getResources().getColor(VarGlobales.color4)
。但是这是不推荐的。所以你需要使用ContextCompact.getColor(this,VarGlobales.color4)
应用程序使用API级别14(而且它必须能够在Android 4中运行),所以我不能使用ContextCompat。这也会起作用getResources().getColor(VarGlobales.color4)
。它不被禁止。如果直接使用R.id,它能起作用吗?它必须是getResources().getColor(VarGlobales.color4)
。但这是不推荐使用的。因此您需要使用ContextCompact.getColor(这个,VarGlobales.color4)
该应用程序使用API级别14(并且它必须能够在Android 4中运行),因此我不能使用contextcompat。这也可以使用getResources().getColor(VarGlobales.color4)
。不推荐使用。如果直接使用R.id,是否有效?