VS22编译原VS2017的Xamarin.Android项目时遇构建错误求助
问题:VS2022编译Xamarin.Android项目报错"找不到Android.Runtime.JNIEnvInit方法令牌"
我尝试使用Visual Studio 2022编译一个原本由Visual Studio 2017创建的Xamarin.Android项目,遇到如下错误:
System.InvalidOperationException: Unable to find the required Android.Runtime.JNIEnvInit method tokens at Xamarin.Android.Tasks.GeneratePackageManagerJava.GetRequiredTokens(String assemblyFilePath, Int32& android_runtime_jnienv_class_token, Int32& jnienv_initialize_method_token, Int32& jnienv_registerjninatives_method_token) at Xamarin.Android.Tasks.GeneratePackageManagerJava.AddEnvironment() at Xamarin.Android.Tasks.GeneratePackageManagerJava.RunTask() at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android- tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17
更新说明
错误复现步骤:将项目复制到另一文件夹后用VS22打开,执行清理解决方案、重建解决方案并重启IDE,但错误依旧。
解决方法
- 检查Xamarin.Android版本匹配:打开项目属性的「应用」选项卡,查看目标Android版本,对比Visual Studio Installer中Xamarin.Android组件的版本,要么更新SDK到对应版本,要么调整项目目标版本至已安装的SDK版本。
- 手动清理项目文件:直接删除项目目录下的
bin和obj文件夹,再重新打开解决方案执行重建操作(不要仅依赖IDE的清理功能)。 - 检查并修复项目文件引用:打开项目的
.csproj文件,查找是否存在旧版本的Android.Runtime相关引用,将其替换为VS2022对应的版本,或移除重复、无效的引用条目。 - 修复VS2022的Xamarin组件:打开Visual Studio Installer,选择「修改」,找到Xamarin.Android组件,点击「修改」进行修复,确保组件完整无损坏。
- 迁移代码到新项目:如果上述方法都无效,新建一个VS2022的Xamarin.Android项目,将原项目的代码、资源、配置文件逐步迁移过去,规避旧项目文件的兼容性问题。
内容的提问来源于stack exchange,提问作者DaveR
相关产品推荐
相关产品推荐

