备份!备份!备份! 重要的事情说三遍
api 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.3'
//清单文件中已添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
//activity中权限动态申请
String[] permissionArr = new String[]{
//相机权限
Manifest.permission.CAMERA,
//SD卡读写操作
Manifest.permission.READ_EXTERNAL_STORAGE,
};
//动态权限已申请
PermissionsUtils.getInstance().checkPermissions(this, permissionArr, new PermissionsUtils.IPermissionsResult() {
@Override
public void passPermissions() {
}
@Override
public void forbidPermissions() {
}
});
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionsUtils.getInstance().onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
】
排查后是由于拍照裁剪库未更新到最新导致的。 api 'com.github.LuckSiege.PictureSelector:picture_library:v2.5.3'
此时由于这个库已经使用了AndroidX而我的项目还是Android的,所以就出现了如下问题:
这一看,这项目是不得不升级到AndroidX了呀,所以就开始查找文章开始操作,没想到一顿操作猛如虎,简直就是二百五。不过好在操作之前做了备份【一定要先备份!备份!备份!】
1、 gradle.properties文件中添加
# 表示使用 androidx
android.useAndroidX=true
# 表示将第三方库迁移到 androidx
android.enableJetifier=true
点击右上角Sync Now
2、 Android Studio 一键迁移
然后就一路操作就可以了。
你以为这样就结束了吗?NO NO NO
3、 将项目中support未导入或导入出错的包手动查找导入
有文章说全文搜索,将support.v搜索一遍,将项目中所有support包替换成对应的androidX库就可以了,但是我采用这种方法没有替换干净,所以只能哪里报错去哪里手动导入。
recyclerview、drawlayout、viewpager、tablayout、ConstraintLayout自动导入的那个包文件不对,需要替换,目前我用到的是这几个。
到此就可以了。
1、清单文件中权限重复,导致一直提示Manifest merger failed with multiple errors, see logs
解决方法:tetminal中输入
gradlew processDebugManifest -stacktrace
查看详细信息,挨个解决就可以了。
2、各module中sdkVersion不一致导致的
解决方法:修改统一即可
3、Unable to start the daemon process. This problem might be caused by …
解决方法:
1、将安装C盘的.gradle目录删除掉
2、设置gradle.properties,若无就新增。
在文件中添加如下配置信息:
org.gradle.jvmargs=-Xmx512m
3、新建系统变量
变量名 _JAVA_OPTIONS
变量值 -Djava.net.preferIPv4Stack=true
【网上的方法 修改或者配置gradle文件没有成功解决的 可以试试这个方法!】
利用好Android Studio中的 Clean Project 和 Invalidate Caches/Restart…
原创不易,欢迎指正,不喜勿碰,谢谢!