Android,AndroidManifest.xml,AndroidManifestMerge,xmlns:tools模式,总是手动替换
编译Xamarin Forms Android应用程序visual studio时,向我显示AndroidManifest.xml冲突的错误列表,例如:Android,AndroidManifest.xml,AndroidManifestMerge,xmlns:tools模式,总是手动替换,android,xamarin,xamarin.forms,xamarin.android,android-manifest,Android,Xamarin,Xamarin.forms,Xamarin.android,Android Manifest,编译Xamarin Forms Android应用程序visual studio时,向我显示AndroidManifest.xml冲突的错误列表,例如: /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error AMM0000: is also present at AndroidManifest.xml:14:9-41 value=
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error AMM0000: is also present at AndroidManifest.xml:14:9-41 value=(@string/app_name). (AMM0000)
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3): Error AMM0000: Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:19:3-79:17 to override. (AMM0000)
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3):错误AMM0000:也出现在AndroidManifest.xml:14:9-41 value=(@string/app_name)。(万安培)
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(3,3):错误AMM0000:建议:在AndroidManifest.xml:19:3-79:17处的元素中添加'tools:replace=“Android:label”'以覆盖。(万安培)
因此,我从调试文件夹打开AndroidManifest.xml,替换为工具:替换为应用程序标记,将工具模式添加到清单标记中,保存它,重新编译我的应用程序,然后它就可以正常运行了
但每当我编译Xamarin Forms Android应用程序时,都必须手动执行前面的步骤
我还将manifestmerge.jar
添加到我的Android.csproj中
此问题显示为调试和发布模式
环境
- 适用于Mac 8.6.4版的Visual Studio社区2019
- Xamarin形式=4.7.0.968
- Android=Versione:10.3.1.4
- 这是一个4.6.0.967及以上版本。对我来说,这是使用Honeywell.BarcodeReader NuGet软件包引起的
一些AndroidX包正在用manifestMerge.jar覆盖默认的Xamarin(即将成为遗留)清单合并
一种解决方法是降级到Xamarin Forms 4.6.0.847,或者修改您的AndroidManifest.xml以具有如下应用程序元素:
<application android:label="@string/app_name" tools:replace="android:label" ...
尝试清理和重建您的解决方案
构建>清洁解决方案
构建>重建解决方案
它对我很有效。手动执行前面的步骤是什么意思?调试代码时,需要在调试之前完成所有工作?好的,我将一步一步地解释:1)启动调试,并显示编译器的错误:AndroidManifest冲突(上面的错误)。2) 接下来,我从Android项目obj/debug/AndroidManifest.xml打开AndroidManifest.xml,并将其添加到清单标记tools:replace=“Android:label”和应用程序标记xmlns:tools=”“3)从obj/debug保存AndroidManifest并重新启动debug,然后应用程序无错误启动。现在停止调试并编辑代码,重新启动调试Android项目,从第一步开始重复步骤!还有,我知道了。您的意思是每次调试代码时都需要将
工具:replace
添加到AndroidManifest.xml中。是的,每次调试我都需要手动将提到的标记添加到AndroidManifest.xml文件中!没有添加标签的新项目工作!
<application android:label="@string/app_name" tools:node="replace"...
xmlns:tools="http://schemas.android.com/tools"