Android 开发中的bug和知识点总结(持续更新中)
1.多语言设置:
https://blog.csdn.net/qq_21983189/article/details/73735278
https://blog.csdn.net/gh8609123/article/details/62440795
2.导入旧项目慢:
改gradle的版本。
改local.properties配置。
改classpath
3.经典bug
Error:Execution failed for task ':app:transformClassesWithDesugarForDebug'.
com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@C:\projects\sxyz\app\build\intermediates\tmp\desugar_args4363382331831664290}+
怎么build都不行,更换jdk就好了。
bug.png4.Could not reserve enough space for 1572864KB object heap。
当前项目gradle.properties中:org.gradle.jvmargs=-Xmx1536m 改成
org.gradle.jvmargs=-Xmx1536
MaxHeapSize=512m
或者直接改成:
org.gradle.jvmargs=-Xmx512m
在as启动页面:
2.png
5.让输入法自动弹出:
android:windowSoftInputMode="stateVisible|adjustPan"
隐藏:android:windowSoftInputMode="stateVisible|stateHidden"
6."stateHidden|adjustResize"和"stateHidden|adjustPan"区别:
"adjustResize"在使用时,布局会被软键盘顶上去,体验非常不好
"adjustPan"在使用时获取焦点的控件下边的View将会被软键盘覆盖。
stateHidden与stateAlwaysHidden:
stateHidden:用户选择activity时,软键盘总是被隐藏。
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是隐藏的。
stateVisible与stateAlwaysVisible:
stateVisible:软键盘通常是可见的。
stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态。
6.Google官方demo网站:https://github.com/googlesamples
- Error:(16, 49) String types not allowed (at 'layout_constraintBottom_toBottomOf' with value 'parent')
错误布局:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
修改方法:在根目录添加id。
android:id="@+id/lay_root"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/app_bar_main"
tools:context="com.cheerchip.testskining.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="@+id/lay_root"
app:layout_constraintLeft_toLeftOf="@+id/lay_root"
app:layout_constraintRight_toRightOf="@+id/lay_root"
app:layout_constraintTop_toTopOf="@+id/lay_root" />
8
.java.lang.ClassCastException: android.graphics.drawable.VectorDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
以为是不能强转,结果魅族pro6s报错,其余几台测试机ok。重启了几遍AS,结果就好了。
Error:android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor' configuration instead.
删除:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
apply plugin: 'android-apt'
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
10.Disconnected from the target VM, address: 'localhost:8601', transport: 'socket'
项目正常能跑,调试就奔溃。突然之间就出现了这个问题。
第一反应,去看有没有端口冲突。没有。第二份反应,回忆有没有做别的操作,没有。
于是重启AS,重启电脑,依旧不行。开始百度,谷歌,各种方法,试了十来种,一个都不行。
机智的同事,把我的网线拔了,重启AS就好了。
This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 解决办法: <item name="windowNoTitle">true</item>
-
android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.support.v7.
Didn't find class "android.support.v7." on path: DexPathList[[zip file "/data/app/com.szmaiji.sxyz-1/base.apk", zip file "/data/app/com.szmaiji.sxyz-1
布局错了:<android.support.
13.No cached version of com.android.support:multidex:1.0.2 available for offline
去掉File-Setting-Gradle-Offline work
14.Unknown failure (at android.os.Binder.execTransact(Binder.java:574))
Error while Installing APKs
File ---> Settings ---> Build,Execution,Deployment ---> Instant Run
把Enable Instant Run to选项去掉再重新运行一遍就通过了
15.微信回调失败。
微信没有回调一般就两点,要么是回调类配置位置不对,要么就是签名包名不一致,所以要先检查回调信息的,如果是代码不对会进失败的回调有错误信息的,依次检查看看。
Android dependency 'com.android.support:appcompat-v7' has different version for the compile (25.3.1) and runtime (27.0.2) classpath. You should manually set the same version via DependencyResolution
17.Android Studio同步svn.
https://www.cnblogs.com/details-666/p/SVN.html
18.Error:null value in entry: aaptFriendlyManifestOutputDirectory=null
删除.gradle,重新build就好。
19.Android Studio 打开是欢迎页面:框住的地方取消选中
wel.png20.Only fullscreen opaque activities can request orientation
修改主题:
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowDisablePreview">true</item>
去掉: AndroidManifest.xml中 android:screenOrientation="portrait"
一般问题就是:android:windowIsTranslucent = true 或者android:screenOrientation="portrait" 引起的。
- You need to use a Theme.AppCompat theme (or descendant) with this activity.
自定义的style: <style name="MyDialogStyle1" parent="@style/Theme.AppCompat.Light.NoActionBar">
或者在 AndroidManifest.xml的相对应的Activity那里, android:theme="@style/Theme.AppCompat.Light.NoActionBar"