当我在Android Studio 2.3.3中使用“Build APK”选项时,它会生成一个没有问题的调试APK,但是当我尝试生成已签名的APK时,会出现错误:
生成签名APK:构建APK时的错误。你可以找到 “消息”视图中的错误。
在“消息”视图中:
错误:字符串[ResourceType]
类型的预期资源
它似乎不是密钥库或签名的问题,因为它引导我到代码的一行,这是:
String color = getResources().getString(VarGlobales.color4).substring(3);
VarGlobales只是我创建的用于定义全局变量的类,当然它是正确导入的。 VarGlobales.color4
有下划线,当我悬停时,它会说:
字符串类型的预期资源[less ...](Ctrl + F1)此检查 查看已使用各种注释的Android API调用 支持注释(例如RequiresPermission或UiThread)和标志 任何未正确使用API的调用 注释。此检查标记的错误示例:传递 错误类型的资源整数(如R.string)到API 期望一种不同的类型(例如R.dimen)。忘记调用了 在需要它的方法中重写方法(通过超级)调用a 在没有声明的情况下需要权限的方法 清单中的权限将资源颜色引用传递给a 期望RGB整数值的方法。 ...还有很多。更多 信息,请参阅文档 http://developer.android.com/tools/debugging/annotations.html
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>
奇怪的是,在构建调试APK时它不会出现任何错误,因此首先它不应该是代码问题。