解决两个相同的APP包名和签名不一样但还是安装失败,目的是不能覆盖安装原来的APP
不废话直接进入主题
1.遇到的第一个问题 adb怎么使用
用手机直接说是安装失败 但是没有报错信息 我使用了adb 命令安装就有安装失败的报错信息了
先看下我使用的过程
Microsoft Windows [版本 10.0.18362.1139]
(c) 2019 Microsoft Corporation。保留所有权利。
C:\Users\yiboo>d:
D:\>C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools
'C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
D:\>c:
C:\Users\yiboo>cd AppData\Local\Android\Sdk\platform-tools
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>adb
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687
Installed as C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools\adb.exe
**
## 中间部分省略(是adb的如何使用的信息)
**
$ADB_MDNS_AUTO_CONNECT comma-separated list of mdns services to allow auto-connect (default adb-tls-connect)
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>adb shell
adb.exe: more than one device/emulator
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>adb install -r
Performing Streamed Install
adb.exe: filename doesn't end .apk or .apex: -r
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>adb install -r app.apk
Performing Streamed Install
adb: failed to stat app.apk: No such file or directory
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>adb install -r D:\yibo\TwosetsofremoteAPPsystems\this_yibo\htm_android\app\release\app.apk
Performing Streamed Install
adb: failed to install D:\yibo\TwosetsofremoteAPPsystems\this_yibo\htm_android\app\release\app.apk: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
C:\Users\yiboo\AppData\Local\Android\Sdk\platform-tools>
2.遇到第二个问题(FileProvider和authorities)
D:\yibo\TwosetsofremoteAPPsystems\this_yibo\htm_android\app\release\app.apk: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
大家注意这句话 如果对INSTALL_FAILED_CONFLICTING_PROVIDER不理解的话可以看下这个链接apk安装失败的25中原因我这个翻译过来就是安装失败供应商冲突 ,我在网上花了大把的时间才了解到 原来是这个问题
先看下图
[INSTALL_FAILED_CONFLICTING_PROVIDER]这个问题就是说明 我的第一个APP和第二个APP使用的是同一个FileProvider(名字必须改变),否则就会出现这个问题 ,也许可能是authorities没有改变 ,第二个APP应该重新打包的时候注意到 把之前项目里所有之前的包名都要改掉,否则就会出现这个问题 。
3.第三个问题是装上之后登录之后,但是崩溃了
java.lang.IllegalArgumentException:Unable to create converter for com.ybzx.longdistance.f.b.a<com.ybzx.longdistance.bean.LoginBean>
java.lang.IllegalArgumentException:com.ybzx.longdistance.f.b.a<com.ybzx.longdistance.bean.LoginBean> declares multiple JSON fields named a
我去这个什么东东!不知道你们遇到过这个错没有
这个跟我的混淆有关系 记住不要去混淆我们的实体类
如果使用了Gson之类的工具要使被它解析的JavaBean类即实体类不被混淆。
-keep class 包名.bean.** { ; }
-keep class 包名.event.**{;}
-keep class 包名.http.** { ; }
-keep class com.ybzx.longdistance.bean.* { ; }
-keep class com.ybzx.longdistance.event.**{;}
-keep class com.ybzx.longdistance.http.** { *; }