You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:37:40