前言
主要记录一些小的问题。
1.The apk for your currently selected variant (Unknown output) is not signed. Please specify a signing configuration for this variant (release).
解决:
因为我们BuildVariants 选择了release 版本。
但是没有给该release指定签名。
添加上签名即可
2. 混淆造成XXXXXBinding文件解析错误
因为使用了反射通过类名定位。造成我的Binding错误。
解决:
-keep class 你的包名.databinding.**{*;}
app/build/generated/data_binding_base_class_source_out
里面就是所有的databinding文件的生成路径。
可以看到我们的Binding.java文件的完整包名。
将这个路径下的类全部取消混淆即可。
3.MutableLiveData.postValue(recordId)只执行一次的问题
最近改老代码,碰见了一个神奇牛逼的写法。
在for循环之中。频繁调用postValue 方法。执行了多次。
因为他觉得postValue 是异步的,以为可以多次执行。
但是,MutableLiveData通过volatile保证多次postValue只会更新一次最新值。
也就是说,你如果想通过postValue 循环执行,那么你必须等待上一次的执行结束了。主动调用postValue 执行第二次。
否则直接丢弃前面提交的postValue().只会执行最新提交的数据操作。
4.CLEARTEXT communication to xxxxxx.xxx.xxx(你的api) not permitted by network security policy
网络安全不允许这种请求。
主要是1.默认不允许http 访问了。
你如果一定需要访问的话.
在res文件夹下。添加xml 文件夹。添加下面的配置
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
//然后
<application
android:name=".MyApplication"
android:networkSecurityConfig="@xml/network_security_config"
就可以了
5.你的主机中的软件中止了一个已建立的连接
今天尝试从电脑上安装apk到虚拟机中。虚拟机已经启动成功了。
但是点击安装时出现了这个错误
问题必须解决啊:
尝试Clean Project 。结果还是提示 中止
看来不是插件问题,而是AS的问题了。重启AS尝试。
尝试重启AS之后,问题任然没有解决。还是提示中止错误。
百度之后得知有的小伙伴说是因为开启移动热点造成的。
而我今天刚好开启了windows10的移动热点
尝试关闭,移动热点。
AS恢复正常,安装app成功。
主要原因在于,AS中调用gradle线程时,执行的程序和系统的热点 冲突了。
两个只能同时开启一个。
评论区