赞
踩
Error:Could not read cache value from 'C:\Users\xxxxx\.gradle\daemon\4.4\registry.bin'.
解决方法:打开C盘当前用户文件夹->.gradle->daemon->选择报错得gradle版本的文件夹->选中文件夹中所有文件并删除->重启studio
参考链接:https://stackoverflow.com/questions/36664143/could-not-read-cache-value-from-registry-bin-android-studio
java.lang.IllegalStateException:Fragment XXXFragment not attached to a context.
字面意思理解,fragment无法和上下文关联。其实就是fragment还没有添加到activity中,我在代码中使用了getResources(),由于一些原因fragment还没有添加到activity时就调用了该方法,导致报错,看源码:
/** * Return <code>requireActivity().getResources()</code>. */ @NonNull final public Resources getResources() { return requireContext().getResources(); } /** * Return the {@link Context} this fragment is currently associated with. * * @throws IllegalStateException if not currently associated with a context. * @see #getContext() */ @NonNull public final Context requireContext() { Context context = getContext(); if (context == null) { throw new IllegalStateException("Fragment " + this + " not attached to a context."); } return context; }
在context为空时会爆出该异常
解决办法:使用fragment自带方法isAdd(),添加判断即可
/**
* Return true if the fragment is currently added to its activity.
*/
final public boolean isAdded() {
return mHost != null && mAdded;
}
在华为9.0版本手机中使用oss上传视频或图片没有走回调,一加6T中无问题,多次测试9.0以下无问题,已经做了兼容http的配置,推测是高版本兼容问题
oss代码如下:
Map<String, String> completeParams = new HashMap<>();
completeParams.put(KEY_UPLOAD_COMPLETE_FILE_PATH, filePath);
completeParams.put(KEY_UPLOAD_COMPLETE_URL, targetURL);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, targetURL, filePath);
putObjectRequest.setCallbackParam(completeParams);
OSSAsyncTask task = oss.asyncPutObject(putObjectRequest, this);
taskTable.put(filePath, task);
解决方案升级oss的sdk版本到 2.9.0 以上,api ‘com.aliyun.dpa:oss-android-sdk:+’,现在最新版为 2.9.2
参考链接:https://blog.csdn.net/weixin_33814685/article/details/87992779
① 删除项目 .idea文件夹下面的 library 文件夹
② sync 同步项目
问题就可以解决。原因是涉及到 gradle 与 ide 之间对依赖的解析和识别过程出现了问题,sdk 也是作为库去识别的,删除之后重新生成可以解决这个问题。
参考链接:https://www.cnblogs.com/aimqqroad-13/p/9313650.html
找到module 的build.gradle 中的implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
替换成implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
fragment加载重复,检查是否适配器多次调用
去掉"="号
删除主工程目录下的.idea文件夹,重启
打开AndroidStudio右边的侧边栏,刷新gradle配置
MacBook-Pro:meidapaydinner rockphoenix$ ./gradlew processDebugManifest -stacktrace
bash: ./gradlew: Permission denied
解决方法:输入 chmod +x gradlew
项目添加aar报错,在Terminal输入第九条bug中的指令:
./gradlew processDebugManifest -stacktrace
可以发现是版本问题,升级至21即可
override fun getBundleExtras(extras: Bundle?) {
TODO("Not yet implemented")
}
去掉TODO即可
原因:signingConfigs中不能出现debug字样,将其替换成自定义文本名
参考链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。