BuildConfig.java在flutter中配置不正确



当我运行flutter项目时,我得到以下错误:

C:UsersSourav Kannantha BDocumentsAndroidProjectsecommercestorebuildappgeneratedsourcebuildConfigdebugcomskbsmkecommercestoreBuildConfig.java:14: error: illegal escape character
public static final String fluttersdk = "C:UsersSourav Kannantha BDocumentsFlutter";
^
.
.
.

我可以理解为什么这是错误的,因为BuildConfig.java包含以下行:

public static final String fluttersdk = "C:UsersSourav Kannantha BDocumentsFlutter";

但是我的local.properties文件包含正确格式的路径:

flutter.sdk=C:\Users\Sourav Kannantha B\Documents\Flutter

我不知道为什么,在构建时跳过了一个反斜杠。我甚至试图将local.properties编辑为:

flutter.sdk=C:\\Users\\Sourav Kannantha B\\Documents\\Flutter

这个:

flutter.sdk=C:/Users/Sourav Kannantha B/Documents/Flutter

但一旦我运行了这个项目,android工作室就会自动将这些更改为以前的样子。

编辑:项目以前运行正常。这一切都始于我将com.google.android.libraries.mapsplatform.secrets-gradle-plugin添加到我的android gradle文件中。但我不确定这是否与这个错误有关。

编辑:我的错误确实与com.google.android.libraries.mapsplatform.secrets-gradle-plugin有关。删除后,错误得到了解决。有人能解释这种行为吗。

自从我添加了secrets插件后,我在Windows上偶然发现了同样的问题。我在文档中发现,你可以将你的秘密移动到插件可以使用的特定属性文件中。这样,您就可以不修改local.properties文件。

请参阅文档中的第8点。简而言之,您需要在应用程序的build.gradle中添加以下代码:

secrets {
propertiesFileName = "secrets.properties"
}

在secrets.properties中,放上你的秘密。

目前,我正在隐藏Maps API密钥,如下所示:

local.properties中存储api密钥

MAPS_API_KEY=<MY_API_KEY>

AndroidManifest.xml中声明api密钥占位符

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${MAPS_API_KEY}" />

更换模块级build.gradle中的api密钥占位符

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
def mapsApiKey = localProperties.getProperty('MAPS_API_KEY')
android {
defaultConfig {
manifestPlaceholders += [MAPS_API_KEY: mapsApiKey]
}
}

我或多或少也遇到了同样的问题。自动生成的buildConfig文件在添加其他声明的位置不正确。

/**
* Automatically generated file. DO NOT MODIFY
*/
public final class BuildConfig {
  public static final boolean DEBUG = false;
  public static final String APPLICATION_ID = "com.package";
  public static final String BUILD_TYPE = "release";
  public static final String FLAVOR = "staging";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0.0";
// Added this weird declaration
  public static final String  = ;
  public static final String sdkdir = " C :  U s e r s  A d m i n i s t r a t o r  A p p D a t a  L o c a l  A n d r o i d  S d k " ";
}

删除com.google.android.libraries.mapsplatform.secrets-gradle-plugin修复了问题

相关内容

  • 没有找到相关文章

最新更新