C# 向Xamarin添加Firebase广告。表单原因:名称不能以'$';字符,十六进制值0x24

C# 向Xamarin添加Firebase广告。表单原因:名称不能以'$';字符,十六进制值0x24,c#,android,firebase,xamarin,xamarin.forms,C#,Android,Firebase,Xamarin,Xamarin.forms,仅限Windows此错误不会发生在使用相同解决方案的mac电脑上 向Xamarin添加Firebase广告。表单原因:名称不能以“$”字符开头,十六进制值0x24 VisualStudio将此显示为警告,但实际上它正在生成时停止 1>DccClassCancelations.Android -> D:\dev\DccClassCancelationsLite\DccClassCancelations\DccClassCancelations\DccClassCancelations.

仅限Windows此错误不会发生在使用相同解决方案的mac电脑上

向Xamarin添加Firebase广告。表单原因:名称不能以“$”字符开头,十六进制值0x24 VisualStudio将此显示为警告,但实际上它正在生成时停止

1>DccClassCancelations.Android -> D:\dev\DccClassCancelationsLite\DccClassCancelations\DccClassCancelations\DccClassCancelations.Android\bin\Debug\DccClassCancelations.Android.dll 
1>No way to resolve conflict between "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" arbitrarily. 
1>Name cannot begin with the '$' character, hexadecimal value 0x24. 
1>C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3\zipalign.exe 4 "D:\dev\DccClassCancelationsLite\DccClassCancelations\DccClassCancelations\DccClassCancelations.Android\obj\Debug\android\bin\com.JacobErnst.DccClassCancelations.apk" "bin\Debug\\com.JacobErnst.DccClassCancelations-Signed.apk"  
1>C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3\apksigner.BAT sign --ks "C:\Users\jacob\AppData\Local\Xamarin\Mono for Android\debug.keystore" --ks-pass pass:android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 15 --max-sdk-version 27  bin\Debug\com.JacobErnst.DccClassCancelations-Signed.apk  
1>"apksigner.BAT" exited with code 2. 
1>Done building project "DccClassCancelations.Android.csproj" -- FAILED. 
1>Build FAILED. 
1> 
1>Deploy failed on NExus6 ========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========
visual studio解决方案中没有名称以“$”开头的文件

复制步骤

  • 创建一个新的Xamarin.Forms项目
  • 从NuGet安装Xamarin.Firebase.Ads包
    • 如果您不知道如何使用插件,请使用此链接
  • 构建Android项目

  • 1>名称不能以“$”字符、十六进制值0x24开头。
    不应中断代码。(无可否认,我已经忽略这个错误好几个星期了,我在编译方面没有任何问题)

    根据您的输出,我假设问题是因为“apksigner.BAT”退出时代码为2。根据经验,由于应用程序的大小,我遇到了类似的问题。Android有65k个方法的限制,当包含谷歌服务时,这些方法很容易满足。解决方案是启用multidex


    总之,
    名称不能以“$”字符开头
    不应导致致命错误。如果我之前的建议不起作用,我建议您考虑正确重命名mscorlib(但同样不可能是问题的根源),然后再进行签名过程(如果没有适当的详细信息,我无法在此建议解决方案,但在签署apk时出现错误,如果不终止生成,至少会使应用程序崩溃)因为

    1>名称不能以“$”字符开头,十六进制值0x24。
    不应破坏您的代码。(无可否认,我已经忽略这个错误好几个星期了,我在编译方面没有任何问题)

    根据您的输出,我假设问题是因为“apksigner.BAT”退出时代码为2。根据经验,由于应用程序的大小,我遇到了类似的问题。Android有65k个方法的限制,在包含Google服务时可以轻松满足。解决方案是启用多索引


    总之,
    名称不能以“$”字符开头
    不应导致致命错误。如果我之前的建议不起作用,我建议您考虑正确重命名mscorlib(但同样不可能是问题的根源),然后再进行签名过程(如果没有适当的详细信息,我无法在此建议解决方案,但是在签署apk时出现错误,如果不终止构建,至少会使应用程序崩溃)因为

    插件将java方法的大小设置为64k以上。插件将java方法的大小设置为64k以上。