此处将为大家介绍关于asp.net–在DataBind上默认为空值的详细内容,并且为您解答有关asp.netdataset用法的相关问题,此外,我们还将为您介绍关于.net–缺少调试|项目的任何CPU
此处将为大家介绍关于asp.net – 在DataBind上默认为空值的详细内容,并且为您解答有关asp.net dataset用法的相关问题,此外,我们还将为您介绍关于.net – 缺少调试|项目的任何CPU构建配置,并在Windows x64上默认为Debug | x86、AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...、android.databinding.Bindable的实例源码、android.databinding.DataBindingComponent的实例源码的有用信息。
本文目录一览:- asp.net – 在DataBind上默认为空值(asp.net dataset用法)
- .net – 缺少调试|项目的任何CPU构建配置,并在Windows x64上默认为Debug | x86
- AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...
- android.databinding.Bindable的实例源码
- android.databinding.DataBindingComponent的实例源码
asp.net – 在DataBind上默认为空值(asp.net dataset用法)
我如何默认复选框以检查列是否为空,但保留true / false值(如果存在)?
<asp:CheckBox ID="boolCheckBox" runat="server" Checked='<%# Bind("MyBoolColumn") %>'
解决方法
绑定(“MyColumn”,“{0:c}”))
我找到的解决方案是使用ItemCreated事件
protected void myListView_OnItemCreated(object sender,ListViewItemEventArgs e) { if (e.Item.ItemType == ListViewItemType.InsertItem) { ((CheckBox)((ListView)sender).InsertItem.FindControl("MyCheckBox")).Checked = true; } }
.net – 缺少调试|项目的任何CPU构建配置,并在Windows x64上默认为Debug | x86
症状
>新项目的默认构建配置为Debug | x86.这听起来不对.我正在运行一个x64操作系统,我相信,对于之前的最后三个版本,默认的构建配置是Debug | Any cpu.
>任何cpu都不存在作为项目的构建配置,我确信应该.要构建任何x64,我需要为项目显式添加一个x64平台.
我认为Debug | Any cpu通常是默认配置是正确的.如果是这样,有什么可能的原因,这不是任何新的项目创建的情况?
您应该可以在Configuration Manager对话框中添加任何cpu作为附加平台.我有Windows Vista x64& Visual Studio 2010并获取任何cpu,x64和安腾的选项.您可以尝试重新运行Visual Studio的安装程序,并查看是否有任何您没有安装的选项.
有趣的是,似乎x86只是新的EXE项目的默认值 – 如果创建一个新的类库项目,它将默认为任何cpu.这是有道理的,因为它是确定运行哪个版本的CLR的EXE文件的平台,而任何cpu DLL都可以由x86和x64 EXE文件加载.
AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...
混淆导致的数据绑定库错误
问题摘要
AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databinding.DataBinderMapper.getDataBinder(androidx.databinding.DataBindingComponent, android.view.View, int)"
堆栈如下:
java.lang.AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databinding.DataBinderMapper.getDataBinder(androidx.databinding.DataBindingComponent, android.view.View, int)"
at androidx.databinding.MergedDataBinderMapper.getDataBinder(MergedDataBinderMapper.java:74)
at androidx.databinding.DataBindingUtil.bind(DataBindingUtil.java:199)
at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:130)
at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:95)
at cn.sintoon.common.adapter.SinRecyclerViewBaseAdapter.onCreateViewHolder(Unknown Source:11)
at cn.sintoon.common.adapter.SinRecyclerViewBaseAdapter.onCreateViewHolder(Unknown Source:0)
at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3336)
at android.view.View.measure(View.java:23454)
at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
at android.view.View.measure(View.java:23454)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:23454)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403)
at android.view.View.measure(View.java:23454)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23454)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1565)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:726)
at android.view.View.measure(View.java:23454)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6834)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:847)
at android.view.View.measure(View.java:23454)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2954)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1753)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2041)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1636)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7946)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1092)
at android.view.Choreographer.doCallbacks(Choreographer.java:893)
at android.view.Choreographer.doFrame(Choreographer.java:812)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1078)
at android.os.Handler.handleCallback(Handler.java:907)
出现场景
封装了一个类库,向外提供一个封装好的 RecyclerAdapter,使用 DataBinding 。生成类库时开启了混淆,在使用时,抛出异常。
问题原因
将 androidx.databinding.DataBindingComponent
混淆掉了。
如何修复
修改混淆规则。不混淆这个类。
-keep class androidx.databinding.DataBindingComponent {*;}
排查过程
根据错误堆栈看,是找不到这个方法,初步怀疑就是被混淆掉了方法,然后直接使用不混淆的测试,的确没有异常了。确认是混淆的问题。
然后在 /build/outputs/mapping/ 目录下查看 mapping.txt 文件,发现果然是将这类混淆掉了。
# compiler: R8
# compiler_version: 1.4.77
# min_api: 1
androidx.databinding.DataBindingComponent -> a.a.a:
mapping.txt 这个文件提供混淆前后类、方法、类成员等的对照表。
总结
在基础类库中使用了数据绑定库要配置混淆规则。
参考 Proguard 混淆规则
android.databinding.Bindable的实例源码
@Bindable public boolean isSelected() { if (layer == null) { return false; } return layer.isSelected(); }
@Bindable public boolean isVisible() { if (layer == null) { return true; } return layer.isVisible(); }
@Bindable public boolean isAdplaying() { return adplaying; }
@Bindable public String getName() { return name; }
@Bindable public int getViewportHeight() { return viewportHeight; }
@Bindable public ImagesBean getAvatars() { return avatars; }
@Bindable public Layer getCurrentLayer() { return document.getCurrentLayer(); }
@Bindable public String getBinding() { return binding; }
@Bindable public String getId() { return id; }
@Bindable public String getElaspsedTime(){ return this.elaspsedTime; }
@Bindable public int getItemId() { return itemId; }
@Bindable public String getAlt() { return alt; }
@Bindable public float getRight() { return getX() + getWidth(); }
@Bindable public List<Track> getAudioTracks() { return audioTracks; }
/** @return Whether the list is currently scanning for devices. */ @Bindable public boolean isScanning() { return this.scanning; }
@Bindable public String getIsbn13() { return isbn13; }
@Bindable public String getoriginal_title() { return original_title; }
@Bindable public String getSubtitle() { return subtitle; }
@Bindable public String getUrl() { return url; }
@Bindable public String getPublisher() { return publisher; }
@Bindable public float getHeight() { return height; }
@Bindable public String getUrl() { return url; }
@Bindable public int getSeasons_count() { return seasons_count; }
@Bindable public List<BooksBean.TagsBean> getTags() { return tags; }
@Bindable public List<String> getTranslator() { return translator; }
@Bindable public String getName() { return name; }
@Bindable public List<PersonBean> getDirectors() { return directors; }
@Bindable public String getIscheck() { return ischeck; }
@Bindable public String getContentDescription() { return contentDescription; }
@Bindable public String getId() { return id; }
@Bindable public String getFirstName() { return firstName; }
@Bindable public int getAdTotal() { return adTotal; }
@Bindable public int getMin() { return min; }
@Bindable public List<DataBean> getData() { return data == null ? new ArrayList<DataBean>() : data; }
@Bindable public String getPages() { return pages; }
@Bindable public String getDateText() { return mDateFormatter.format(mReadDate); }
@Bindable public String getimage() { return image; }
@Bindable public List<String> getAuthor() { return author; }
@Bindable public String getAuthor_intro() { return author_intro; }
@Bindable public String getPages() { return pages; }
android.databinding.DataBindingComponent的实例源码
public ViewDataBinding getDataBinder(DataBindingComponent bindingComponent,View view,int layoutId) { DataBinderMappable subMapper = getSubMapper(layoutId); if (subMapper == null) { return null; } layoutId = subMapper.getLayoutId((String) view.getTag()); if (layoutId == 0) { bindingPackageName = null; throw new IllegalArgumentException("View is not a binding layout"); } return subMapper.getDataBinder(bindingComponent,view,layoutId); }
public ViewDataBinding getDataBinder(DataBindingComponent bindingComponent,View[] views,int layoutId) { DataBinderMappable subMapper = getSubMapper(layoutId); if (subMapper == null) { return null; } layoutId = subMapper.getLayoutId((String) views[0].getTag()); if (layoutId == 0) { bindingPackageName = null; throw new IllegalArgumentException("View is not a binding layout"); } return subMapper.getDataBinder(bindingComponent,views,layoutId); }
public ChatMessageAdapter(DataBindingComponent dataBindingComponent,ChatMessageClickCallback clickCallback) { this.dataBindingComponent = dataBindingComponent; this.clickCallback = clickCallback; }
public ConversationAdapter(DataBindingComponent dataBindingComponent,ConversationClickCallback clickCallback) { this.dataBindingComponent = dataBindingComponent; this.clickCallback = clickCallback; }
public ContributorAdapter(DataBindingComponent dataBindingComponent,ContributorClickCallback callback) { this.dataBindingComponent = dataBindingComponent; this.callback = callback; }
public Repolistadapter(DataBindingComponent dataBindingComponent,boolean showFullName,RepoClickCallback repoClickCallback) { this.dataBindingComponent = dataBindingComponent; this.repoClickCallback = repoClickCallback; this.showFullName = showFullName; }
private DataBindingComponent buildDataBindingComponent() { return DaggerAppDataBindingComponent.builder().application(this).build(); }
@NonNull public static DataBindingComponent glideBindingComponent( @NonNull final RequestManager requestManager) { return new GlideBindingComponent(requestManager); }
关于asp.net – 在DataBind上默认为空值和asp.net dataset用法的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.net – 缺少调试|项目的任何CPU构建配置,并在Windows x64上默认为Debug | x86、AbstractMethodError: abstract method "androidx.databinding.ViewDataBinding androidx.databind...、android.databinding.Bindable的实例源码、android.databinding.DataBindingComponent的实例源码等相关知识的信息别忘了在本站进行查找喔。
本文标签: