哈尔滨模版网站建设,wordpress 浏览量 点击,2024年个体工商户年报怎么填,全国企业信用查询系统在使用多Module中使用DataBinding会引发一些奇怪的问题#xff0c;最近好好的腾出时间来折腾这些奇怪的问题#xff1a;
1#xff1a;如果当Module启动DataBinding重启AS启动报错的话#xff0c;就启用允许多行代码
android { defaultConfig {multiDexEnabled true}
}
de…在使用多Module中使用DataBinding会引发一些奇怪的问题最近好好的腾出时间来折腾这些奇怪的问题
1如果当Module启动DataBinding重启AS启动报错的话就启用允许多行代码
android { defaultConfig {multiDexEnabled true}
}
dependencies {//解决超过65546代码的问题compile com.android.support:multidex:1.0.2
}
2:为什么include的Toolbar(或者别的控件)在代码里面显示是View因为这个Toolbar的布局代码文件在Module,合并在app的时候编译所看到的是view这个只能由Google后面优化了但是目前可以用这种方式来缓冲
public abstract class BaseFragmentListConditionDataBindT, C, B extends ViewDataBinding extends BaseFragmentListConditionT, C {public B mViewBinding;public ToolbarCommonBinding mToolbarCommonBinding;Overridepublic void initDataBind(View view) {mViewBinding DataBindingUtil.bind(view);mToolbarCommonBinding DataBindingUtil.bind(view.findViewById(R.id.toolbarCommon));}
} 3.因为module使用DataBinding这系列奇怪问题
Error:Execution failed for task :library:test:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug.failure, see logs for details.Error reading contents of H:\mobile\code\trunk\as\library\test\build\intermediates\data-binding-compiler\debug\dependent-lib-artifacts directory java.nio.file.NoSuchFileException: H:\mobile\code\trunk\as\library\test\build\intermediates\data-binding-compiler\debug\dependent-lib-artifactsat sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)at sun.nio.fs.WindowsDirectoryStream.init(WindowsDirectoryStream.java:86)at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)at java.nio.file.Files.newDirectoryStream(Files.java:457)at android.databinding.tool.DataBindingBuilder.getBRFilePackages(DataBindingBuilder.java:145)at android.databinding.tool.DataBindingBuilder.getJarExcludeList(DataBindingBuilder.java:128)at com.android.build.gradle.internal.LibraryTaskManager.lambda$excludeDataBindingClassesIfNecessary$19(LibraryTaskManager.java:688)
关于这个坑爹的问题我一直不敢确认我这个是否正确也折腾了我好几天我处理方式是把主项目的Module都引用到新项目的Module使用然后获取到具体的错误问题我这边获取到问题是把com.github.chrisbanes:PhotoView:1.0.0升级成com.github.chrisbanes:PhotoView:2.1.3。然后再运行主项目这个问题又没了真的是超级超级蛋疼。
4.多个module之间他们生成的layout。名称绝对不能一样。
不然会出现上面的一系列问题。
5.如果以上问题都解决不了删除app和module的所有build和.gradle文件夹就可以解决了关于第三个问题也是能用这个方法解决的
6.还是关于module之间的生成dataBinding的问题。关于这个问题我折腾了23天了最后特意搞了一个小项目这个问题目前google搜索不到可能这种形式做法的相当相当少但总算找到一个折腾的方式解决
假设我们有一个这样的需求module项目使用抽象基类并且抽象基类已经确定了生成好的databinding 至于基类的逻辑我们暂且不管这不是重点重点是我们看这个app的实现类 两种方式解决 正最终就是在app的类里面明确该DataBinding是属于某个lib即可
7.关于在module使用泛型DataBinding类时
会提示找不到所有生成的DataBinding。目前解决方式只能是module不用泛型DataBinding只在app使用泛型DataBinding
8.databinding不存在
当编译错误的时候会发现很多提示databinding不存在如下图 如果你拖到最下面会看到真正导致错误的问题如下图 databinding有个问题就是当你本来正常的项目一顿猛如虎的代码操作后运行编译出错会出现一种情况全是提示databinding不存在并没有显示真正导致错误的问题如下图
那么解决方式 可能目前还未比较完善我是用排除方式一个一个模块进行删除运行找到真正的错误最后在这里发现
你们可以看到错误提示里面并没有提示如图中的代码错误。这种问题是非常纠结非常纠结的 如果有更好的解决方式求指导 8. gradle升级到4.6后DataBinding编译时报告参数过多
2019-9-27更新 这是最近碰到的一个问题gradle4.1是没有这个问题的而4.6就报这个参数过多问题了原因是每个DataBinding编译生成的时候会在自动生成的类里面有个构造函数而4.6的构造函数不知道为什么会报参数过多。至于解决方法我目前是又退回4.1了google暂时搜不到什么解决方法
9. 当编译后只显示编译错误没有其他反馈的时候
可以输入该命令gradlew compileDebugJavaWithJavac
然后就能看到详细的错误了 D:\yitu\MVVMRapid\app\src\main\java\com\my\mvvmrapid\MainActivity.java:4: 错误: 程序包com.my.mvvmrapid.databinding不存在
按照丰富的经验就是app没有引入databinding