1. kotlin 模块化 bean 问题
描述:在模块化各个中实体类定义太多,可能有重复实体类,就会报错:
E/Parcel: Class not found when unmarshalling: xxxDataBean
java.lang.ClassNotFoundException: xxxDataBean
解决:抽取为一个共用实体类即可
2. EventBus 接收不到事件
官方demo中,是在onStart中注册,onStop中注销,实际运用中,只会走一次,所以不会接受到事件,放在onCreate中注册,onDestory中注销,即可
- The specified child already has a parent. You must call removeView
这个错误出现在Fragment中,
inflater.inflate(R.layout.fragment_shop_new, container)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_shop_new, container,false)
}
4. WebView常见问题
WebView调H5上传文件点击取消时无法再次响应H5上的选择文件事件
大概思路:
h5页面通过filePathCallback调起后,回调一直占用,必须置空
onActivityResult 中resultCode==Activity.RESULT_CANCELED
filePathCallback.onReceiveValue(null);
- fragment无法直接使用onKeyDown,只有在activity中才有的方法
6. swiperefreshlayout与scrollview滑动冲突
#滑动冲突
sl.viewTreeObserver.addOnScrollChangedListener {
if (b3SR != null) {
b3SR.isEnabled = sl.scrollY == 0
}
}
7. ScrollView无法滑动
最上层
android:fitsSystemWindows="true"
android:focusable="true"
android:focusableInTouchMode="true"
<--不要使用-->
android:windowSoftInputMode="adjustPan"
8. DataBinding替换R文件
项目基于DataBinding,复制一个新的APP,需要更换applicationId,项目名,包名,还有R文件,AndroidManifest.xml中修改包名,复制即可
9. Android Studio 指定签名证书文件
AS默认使用的debug包,如果有了jks文件,切换为release就会报错
参考:(Android Studio 指定签名证书文件)[http://www.mobibrw.com/2015/2657]
2步解决:
1.移动位置 放在buildTypes前
signingConfigs{
......
}
2.添加调用语句
buildTypes {
release {
signingConfig signingConfigs.release
}
}
10. 依赖冲突,查看gradle所属依赖
gradlew -q app:dependencies命令查看依赖关系
11.CardView不显示阴影
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="true"
或者在配置文件中添加开启硬件加速
android:hardwareAccelerated="true"
11.android9.0 http不支持问题
AndroidManifext.xml
<application
android:usesCleartextTraffic="true">
...
</application>
AndroidManifext.xml
<application
android:networkSecurityConfig="@xml/network_security_config">
...
</application>
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>