You cannot start a load on a not yet attached View or a Fragment ...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yun382657988/article/details/83273469

项目app出现标题上的错误,定位到代码中的这句:

Glide.with(getContext()).load(hairdresserDetail.getHead_photo())
                    .into((CircleImageView) newsHeader.findViewById(R.id.head_photo));

Glide加载图片报错?百度下,还真有类似的情况,详解请看如下链接

https://blog.csdn.net/loners_/article/details/73521968

看了上面博主的文章分析,可能是activity被销毁,而getContext()传入了空值导致的。加上以下判断

if(getContext()!=null){
            Glide.with(getContext()).load(hairdresserDetail.getHead_photo())
                    .into((CircleImageView) newsHeader.findViewById(R.id.head_photo));
        }

再测未复现标题所示的错误。

展开阅读全文

XE2下的"Cannot assign a TFont to a TFont"

07-11

安装了XE2来学习,顺便把以前的一些测试工程拿来试验rn今天有了个发现或者说问题。rn我有一个测试项目用来测试调用dll中的窗体的,是D7下的项目,我使用了FastMM4来进行内存相关的管理,在dll加载后,调用了一个过程init,把宿主的application和screen传给了dll,然后再调用dll中提供的其它函数,因为测试,我exports出的函数很简单,就是一个showMessage(),我把dll中的窗体调用部分全部移除掉了。这在d7下是工作正常的rnprocedure test;rnbeginrn showMessage('message in dll');rnend;rn因为使用了fastmm4,我没有使用带包编译rnrn我在xe2下打开这个项目,编译运行都是正常的(我又专门下载了最新的fastmm4.99),我发现在dll中执行到showmessage('message in dll');时,会报“Cannot assign a TFont to a TFont.”错误rn网上关于这个错误的解决大多是传宿主的application和screen过去,还有更进一步的修改graphics和controls里的源码,我此前已经按照这个处理过,在d7下是不会报这个错误的,但在xe2下就会有,rnrn我又作了其它的试验,在dll中不调用showmessage('xxxxx');可以正常工作rndll中showmessage删除,rn换成 rnwith tmyform.create(application) do rntryrnshowModal;rnfinallyrnfree;rnend;rn窗体弹出正常rn我在dll窗体中增加一下按钮,按钮点击事件是rnShowMessage('hell, button message in dll form');rn同样会报“Cannot assign a TFont to a TFont.”错误rn如果仅仅是rnEdit1.Text := 'abc';rn则dll窗体中的Edit1.Text是会随之改变的rnrnrnrn基本上就是这个现象,似乎d7中的一些东西在xe2中有了很大的变动,因为是测试项目,我只测试了showMessage函数,不知道有没有其它函数有类似现象。rnrn不知道有没有朋友遇到过这种问题,可否指点一下 论坛

没有更多推荐了,返回首页