这篇文章记录实际中遇到的问题,写给自己看,只为以后遇到同样问题快速解决,持续更新
目录
1.1 recyclerview 加载完数据会自动跑到第一个item
1.2 scrollview嵌套横向滑动的recyclerview,只显示一个item
1.7 ScrollView嵌套recyclerView加载完数据总是自动滑动到最下面
1.8 ScrollView嵌套recyclerView,recyclerView只能显示一个item
2.1 Kotlin plugin should be enabled before 'kotlin-android-extensions'
2.2 Error: Invoke-customs are only supported starting with Android O (--min-api 26)
2.3 Compatible side by side NDK version was not found. Default is 20.0.5594570
3.3 安装失败:Installation failed due to: '-99'
3.4 error: failed linking file resources. Cause: invalid type code: 2D
1.显示问题
1.1 recyclerview 加载完数据会自动跑到第一个item
不要每次都setAdapter(),用add,然后notifyDataSetChanged()
1.2 scrollview嵌套横向滑动的recyclerview,只显示一个item
原因:item的width设置了固定值,改成wrap_content就可以了
1.3 Chronometer 实现开始、暂停、结束功能
1.4 应用开启后,每隔一段时间向服务器传一次自己的位置
1.5 计算后的double精确到小数点后两位
DecimalFormat df = new DecimalFormat("0.00");
new BigDecimal(df.format(需要转的数据));
1.6 shape画叠加圆
要实现这样一个效果,可以考虑用layer-list来实现,本文只列举了两个,其他的请自行扩展
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval"
android:useLevel="true">
<size
android:width="@dimen/px280"
android:height="@dimen/px280" />
<solid android:color="#AAF7D2" />
</shape>
</item>
<item
android:bottom="@dimen/px20"
android:left="@dimen/px20"
android:right="@dimen/px20"
android:top="@dimen/px20">
<shape
android:shape="oval"
android:useLevel="true">
<size
android:width="@dimen/px100"
android:height="@dimen/px100" />
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval"
android:useLevel="true">
<size
android:width="@dimen/px280"
android:height="@dimen/px280" />
<solid android:color="#AAF7D2" />
<stroke
android:width="@dimen/px10"
android:color="@color/yellow" />
</shape>
</item>
<item
android:bottom="@dimen/px90"
android:left="@dimen/px90"
android:right="@dimen/px90"
android:top="@dimen/px90">
<shape
android:shape="oval"
android:useLevel="true">
<size
android:width="@dimen/px100"
android:height="@dimen/px100" />
<solid android:color="@color/white" />
</shape>
</item>
</layer-list>
1.7 ScrollView嵌套recyclerView加载完数据总是自动滑动到最下面
rv.setFocusableInTouchMode(false);
rv.requestFocus();
1.8 ScrollView嵌套recyclerView,recyclerView只能显示一个item
用NestedScrollView代替ScrollView
rv.setLayoutManager(new LinearLayoutManager(this){
@Override
public boolean canScrollVertically() {
return false;
}
});
1.9Tablayout指示器过长
Tablayout指示器太长,很难看,通过setTabIndicatorFullWidth(false);方法设置
2.配置问题
2.1 Kotlin plugin should be enabled before 'kotlin-android-extensions'
'kotlin-android'需要放在'kotlin-android-extensions'的前面,app 的build.gradle中如下
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
2.2 Error: Invoke-customs are only supported starting with Android O (--min-api 26)
app的build.gradle下
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}
2.3 Compatible side by side NDK version was not found. Default is 20.0.5594570
tools–>sdk manager–>Android sdk–>sdk tools–>show package detail–>找到NDK(side by side) 具体版本,完成下载并安装即可
2.4 Android10 访问不了网络
在AndroidManifest.xml <application />节点中加入 android:usesCleartextTraffic="true"
2.5 build中文出现乱码
help-edit Custom CM Options,在末尾加入-Dfile.encoding=UTF-8,然后重启as
3.编译问题
3.1 gradle插件版本与gradle版本对应表
https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-gradle
gradle下载地址:https://services.gradle.org/distributions/
3.2 查看gradle详细错误信息
gradlew compileDebug --stacktrace
gradlew compileDebug --stacktrace -info
gradlew compileDebug --stacktrace -debug
gradlew compileDebugSources --stacktrace -info(推荐)
3.3 安装失败:Installation failed due to: '-99'
安装的时候出现了这个问题:List of apks: [0] 'F:\copy_dou\D\dou\workspace\dapingv1.1\app\build\outputs\apk\debug\app-debug.apk' Installation failed due to: '-99
解决方法:File--Invalidate Caches / Restart...
3.4 error: failed linking file resources. Cause: invalid type code: 2D
原因是设置color的时候没有用正确的颜色格式,实际中可能会出错的两种情况:
通过Color.parseColor()方式设置颜色的时候忘了加“#”,比如Color.parseColor("#999999")写成Color.parseColor()
还有就是xml中color设置出错,我这次比较蠢,把android:textColor中的内容写成了文本
3.5 jjava.rmi.ServerError: Error occurred in server thread; nested exception is:
java.lang.AssertionError: Could not delete caches dir F:\beforeUpdate-new\BaseProject-1.0
解决步骤:
1.尝试build-clean project-rebuild project,没解决问题
2.尝试file-invalidate caches/restart,没解决问题
3.关闭as,找到上面说的文件路径,直接删除,提示该文件被java(TM) Platform SE binary占用,Ctrl+Shift+Esc启动任务管理器,找到该进程,结束任务,然后再打开as,编译、运行,成功
4.第3种方式就可以解决该问题了,可是每次都这么操作太费时间了,所以可以在出现这种情况的时候直接启动任务管理器结束占用文件的进程。推荐该方法
3.6 项目突然乱码了,原本的Java文件变成了J标识
解决方法:
删除.Androidstudio/system/caches下缓存文件再重新打开项目
用notepad++也可以看到正常的文件
4.有用的工具合集
1.gifSplitter(把gif分割为帧图片,当然ps也可以实现这个需求,不过这个更方便快捷嘛)
链接: https://pan.baidu.com/s/1D4xWgbIk57p2Pd4au9aImg 提取码: vdma
2.格式转换工厂(看名字就不用介绍是干啥了吧)
5.代码推送问题
1.远程推送被拒绝
按照这个方法解决了:https://www.cnblogs.com/wf-skylark/p/9315463.html
总结一下就是在terminal中用 git push -u origin +master
2.refusing to merge unrelated histories
在你操作命令后面加--allow-unrelated-histories
例如:git merge master --allow-unrelated-histories