Android开发遇到的常见问题和知识点

  1. Java代码是中文,真机显示乱码

android-studio setting->editor->files encoding 设置为UTF-8, 重启Android studio

  1. Android ListView默认会显示选中的item为橙黄底色,有时候需要去掉这种效果,或者设置自定义的选中背景色

android:listSelector属性,可以设置你自定义的选中背景图。

例如android:listSelector="#00000000"

  1. HorizontalScrollView滑动时ACTION_UP偶尔执行

如果不是水平滑动,ACTION_MOVE之后不会执行ACTION_UP而是ACTION_CANCEL

  1. static变量在堆栈区,不会释放内存

要慎用,否则会导致内存泄漏

  1. res与res-auto的区别

通常我们在布局文件中使用自定义属性的时候会这样写:xmlns:app="http://schemas.android.com/apk/res/包路径"。

但如果当前工程是做为lib使用,那么你如上所写 ,会出现找不到自定义属性的错误 。

这时候你就可以写成: xmlns:app="http://schemas.android.com/apk/res-auto"

  1. startActivityForResult返回resultCode为cancel

目标Activity在AndroidManifest.xml中android:launchMode不能为singleInstance,singleTask, 可用默认的standard。

  1. <':app:processDebugResources'.>com.android.ide.common.process.ProcessException:org.gradle.process.internal.Exception: Process 'command 'Android\sdk\build-tools\23.0.0_rc2\aapt.exe'' finished with non-zero exit value 1

Error:Execution failed for task ':app:compileDebugAidl'.> Executor Singleton not started

Can't resolve symbol AppCompatActivity

BuildTools Version, SDK Version,Plug in Version, Java Version和Gradle Version不兼容导致

项目->右键->Open Module Settings设置一致的合适的版本

Rebuild Project

必要时,File->Invalidate Cashes/Restart重启一下Android Studio

  1. 自定义Listview的时候,会出现下面选中一个空间黑色底色的情况,破坏整体美观度

android:cacheColorHint=“#00000000”就可以解决该问题

  1. FragmentTransaction.commit()报错会报错IllegalStateException:Can not perform this action after onSaveInstanceState

如果在Activity的onSaveInstanceState()之后调用commit()方法,则会报该错,换成FragmentTransaction.commitAllowingStateLoss().

  1. release版本运行时抛出找不到jar包的类的异常

jar包或SDK的包没有在proguard-rules.pro中进行混淆处理

  1. 本地文件保存需要考虑版本升级的兼容问题

如果本地数据保存用到序列化,反序列化时会根据类名,方法名和变量生成唯一的,一一映射的serialVersionUID,如果类名,方法名和变量有变动,而serialVersionUID不一致的化,会出现反序列化异常。

  1. 在proguard.cfg文件中进行混淆处理

补间动画移动/缩放/改变透明度后的View的点击事件无效

补间动画处理后的View不是原来的View本身,要用属性动画,属性动画处理后的View还是其本身

  1. TextView在xml中定义相应函数,运行时没响应

在xml中android:onClick="onClick",需要加上android:clickable="true"

你可能感兴趣的:(Android开发遇到的常见问题和知识点)