侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 274 篇文章
  • 累计创建 55 个标签
  • 累计收到 74 条评论

Android 常见问题

Z同学
2021-08-25 / 0 评论 / 0 点赞 / 560 阅读 / 1,563 字
温馨提示:
本文最后更新于 2021-11-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

主要记录一些小的问题。

1.The apk for your currently selected variant (Unknown output) is not signed. Please specify a signing configuration for this variant (release).

image.png
解决:
因为我们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到虚拟机中。虚拟机已经启动成功了。
但是点击安装时出现了这个错误
image.png

问题必须解决啊:

尝试Clean Project 。结果还是提示 中止

看来不是插件问题,而是AS的问题了。重启AS尝试。

尝试重启AS之后,问题任然没有解决。还是提示中止错误。

百度之后得知有的小伙伴说是因为开启移动热点造成的。

而我今天刚好开启了windows10的移动热点

image.png

尝试关闭,移动热点。

AS恢复正常,安装app成功。

主要原因在于,AS中调用gradle线程时,执行的程序和系统的热点 冲突了。

两个只能同时开启一个。

0

评论区