繁体   English   中英

TextureView不支持显示背景可绘制的Xamarin Android

TextureView doesn't support displaying a background drawable Xamarin Android

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我为camera2实现执行充气操作时,TextureView出现问题。

我在Android 8上遇到问题,但在三星s5 Android 6上可以使用。

错误:

{Android.Views.InflateException: Binary XML file line #1: Error 
inflating class md5773532591b176ca6c4550eebd08312bd.AutoFitTextureView 
---> Java.Lang.Reflect.InvocationTargetException: Exception of type 
'Java.Lang.Reflect.InvocationTargetException' was thrown. ---> 
Java.Lang.UnsupportedOperationException: TextureView doesn't support 
displaying a background drawable
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
--- End of managed Android.Views.InflateException stack trace ---
android.view.InflateException: Binary XML file line #1: Error inflating 
class md5773532591b176ca6c4550eebd08312bd.AutoFitTextureView
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:658)
at 
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:801)
at 
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:874)
at 
android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:877)
at 
android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at Camera2BasicFragment.n_onCreateView(Native Method)
at Camera2BasicFragment.onCreateView(Camera2BasicFragment.java:44)
at android.app.Fragment.performCreateView(Fragment.java:2626)
at 
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1279)
at 
android.app.FragmentManagerImpl.addAddedFragments
(FragmentManager.java:2422)
at android.app.FragmentManagerImpl.executeOpsTogether
(FragmentManager.java:2201)
at 
android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute
(FragmentManager.java:2155)
at android.app.FragmentManagerImpl.execPendingActions
(FragmentManager.java:2056)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:719)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7425)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run
(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Caused by: java.lang.UnsupportedOperationException: 
TextureView doesn't support displaying a background drawable
at android.view.TextureView.setBackgroundDrawable(TextureView.java:321)
at android.view.View.setBackground(View.java:20532)
at android.view.View.<init>(View.java:5232)
at android.view.View.<init>(View.java:4647)
at android.view.View.<init>(View.java:4626)
at android.view.TextureView.<init>(TextureView.java:148)
at md5773532591b176ca6c4550eebd08312bd.AutoFitTextureView.<init> . 
(AutoFitTextureView.java:29)
..

这是AutoFitTextureView.cs

public class AutoFitTextureView : TextureView
{
    private int mRatioWidth = 0;
    private int mRatioHeight = 0;........ link to pastebin

代码AutoFitTextureView

这是xml

<AutoFitTextureView
    android:id="@+id/camera2_content"
    android:layout_below="@id/header2_wrap"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentLeft="true"/>........... link to pastebin

代码xml

我在Camera2BaseFragment中将xml称为:

public override View OnCreateView(LayoutInflater inflater, ViewGroup 
container, Bundle savedInstanceState)
    {
      return inflater.Inflate(Resource.Layout.Camera2BasicFragment, 
      container, false);
    }

我尝试删除xml中的“ AutoTextView”,然后进行充气。 我该如何解决这个问题? 谢谢。

1 个回复

错误java.lang.reflect.InvocationTargetException通常表示您尚未正确初始化上下文

做这样的事情:

public class AutoFitTextureView : TextureView
{
    private int mRatioWidth = 0;
    private int mRatioHeight = 0; 
    Context mContext;

 public AutoFitTextureView(Android.Content.Context context) : base(context, null)
    {
       init(context, attrs);
    }
 public AutoFitTextureView(Android.Content.Context context, IAttributeSet attrs) : base(context, attrs, 0)
    {
       init(context, attrs);
    }
 public AutoFitTextureView(Android.Content.Context context, IAttributeSet attrs, int defStyle) : base(context,attrs,
defStyle)
    {
       init(context, attrs);
    }

   private void init(Context ctx, Android.Util.IAttributeSet attrs)
    {
        mContext = ctx;
    }

 public void SetAspectRatio(int width, int height)
    {
        if (width == 0 || height == 0)
            throw new ArgumentException("Size cannot be negative.");
        mRatioWidth = width;
        mRatioHeight = height;
        RequestLayout();
    }

    protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
    {
        base.OnMeasure(widthMeasureSpec, heightMeasureSpec);
        int width = MeasureSpec.GetSize(widthMeasureSpec);
        int height = MeasureSpec.GetSize(heightMeasureSpec);
        if (0 == mRatioWidth || 0 == mRatioHeight)
        {
            SetMeasuredDimension(width, height);
        }
        else
        {
            if (width < (float)height * mRatioWidth / (float)mRatioHeight)
            {
                SetMeasuredDimension(width, width * mRatioHeight / mRatioWidth);
            }
            else
            {
                SetMeasuredDimension(height * mRatioWidth / mRatioHeight, height);
            }
        }
    }
}
2 android-显示不支持的语言

在我的Android应用中,我必须同时使用Sinhala和英语两种语言供用户选择。 在这种情况下,Android不支持僧伽罗语。 我可以在代表僧伽罗语时使用Unicode还是其他字体。 如何将Sinhala映射到Strings文件夹。 ...

3 为什么Xamarin不支持HTTP?

我正在尝试从Xamarin.Forms发出一个http请求,但是却很挣扎。 当我尝试执行http请求时,出现错误消息“ 不支持HTTP ”。 var httpClient = new HttpClient(); var json = httpClient.GetStringAsync( ...

7 Xamarin-不支持解密PDF吗?

我在Xamarin项目中使用Syncfusion PDF库,并且尝试使用用户密码对PDF解密,但我不断得到:System.NotSupportedException:当前不支持加密文档。 我要做的就是: 我可以理解异常的含义,但是我只是想知道是否有任何方法可以做我需要做的事情。 ...

8 Xamarin不支持的库/功能

我是一名Web开发人员,偶然发现了Xamarin。 使我感兴趣的是“跨平台应用程序”的构建。 可以做到这一点真是令人惊讶。 我已经阅读了Xamarin的网站,了解它支持的库(Android和iOS)。 Xamarin是否缺少任何库/功能? 任何想法都将真正有帮助! ...

2016-05-19 07:40:35 2 75   xamarin
9 Xamarin:不支持 @(Content) 构建操作

我正在 VS Pro 2015(Xamarin) 中开发一个 Android 应用程序。 一切正常,直到今天早上我更新了我的 Android 设备。 我能够构建我的应用程序,但是在部署到我的设备时,我收到一堆警告,说不支持@(Content) build action is not supporte ...

10 VSTS Windows构建代理不支持Xamarin?

我正在Xamarin项目中尝试VSTS和CI。 为此,我一直在Mac上运行本地构建代理,以观察在构建过程中使用和发出的文件(在_work子文件夹树中)。 在构建移动后端(部署到Azure)时,我也在PC上运行本地构建代理,但是当我在Windows本地构建代理上为Android项目启动构建时, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM