小编Sri*_*kar的帖子

xamarin android构建错误:“无法为类创建JavaTypeInfo”

在生成时,编译器将引发以下错误:

错误由于System.NullReferenceException,无法为类App.Droid.Controls.WebViewJavaScriptInterface创建JavaTypeInfo:对象引用未设置为对象的实例。在Java.Interop.Tools.JavaCallableWrappers.JavaCallableWrapperGenerator.Signature..ctor(在Java.Interop.Tools.JavaCallableWrappers.JavaCallableWrapperGenerator.Signature..ctor(在Java.Interop.Tools.JavaCallableWrappers.JavaCallableWrapperGenerator.Signature..ctor( Java.Interop.Tools.JavaCallableWrappers.JavaCallableWrapperGenerator.AddMethod上的MethodDefinition方法,ExportAttribute导出)互操作工具。

我已经为Webview创建了一个自定义渲染器,试图在其中注入JavaScriptInterface。我有一个不同项目的解决方案,这可能是导致上述问题的原因,也可能不是。

public class WebviewRendererEX : WebViewRenderer
{
    Context _context;

    public WebviewRendererEX(Context context) : base(context)
    {
        _context = context;
    }
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
    {
        base.OnElementChanged(e);
        if (Control != null)
        {
            CookieManager cm = CookieManager.Instance;
            cm.SetAcceptCookie(true);
            cm.SetAcceptThirdPartyCookies(Control, true);
            Control.Settings.JavaScriptEnabled = true;
            Control.Settings.DomStorageEnabled = true;
            Control.AddJavascriptInterface(this, "Android");
            Device.BeginInvokeOnMainThread(() =>
            {
                Control.EvaluateJavascript("function someNavigate(dict){Android.navigateTo(dict);}", null);
            });    
        }
    }
}

public class WebViewJavaScriptInterface : Java.Lang.Object
{

    private Context context;
    public WebViewJavaScriptInterface(Context context)
    {
        this.context = context;
    }
    [Java.Interop.Export("navigateTo")]
    [JavascriptInterface]
    public void …
Run Code Online (Sandbox Code Playgroud)

android xamarin xamarin.forms

4
推荐指数
3
解决办法
3122
查看次数

标签 统计

android ×1

xamarin ×1

xamarin.forms ×1