BUG汇总 1

1.Unsupported Modules Detected: Compilation is not supported for following modules

问题描述: 在程序界面的右上角提示无法编辑程序
解决办法: File -> Invalidate Caches / Restart -> Invalidate Caches & Restart.


2.Gradle sync failed: Connection timed out: connect Consult IDE log for more details (Help | Show Log)

问题描述: 向AS 导入某个project之后,在运行某个module时出现如下错误,导致无法运行:

打开Messages提示:

这说明系统尝试下载gradle-3.3-all.zip但失败。

解决办法:

打开AS的project视图,从根目录gradle->wrapper->gradle wrapper.properities中,找到distributionUrl值,如图,这说明需要gradle-3.3-all.zip,并且之前系统也提示需要下载它。

下载网址:https://services.gradle.org/distributions/gradle-3.3-all.zip(依据具体情况下载需要的gradle,比如需要grade3.2,则下载网址是https://services.gradle.org/distributions/gradle-3.2-all.zip),下载完成后直接把gradle-3.3-all.zip拖到该路径下:/Users/<用户名>/.gradle/wrapper/dists/gradle-3.3-all/<...>/。

重新运行即可。


3.Building gradle project info...(一直)

问题描述: 向AS 导入某个project时,一直卡在这里,还是gradle的问题。
解决办法: 第一种解决办法可参考上个问题,第二种办法是修改该project的gradle-wrapper.properties里的gradle版本为自己电脑已有的版本。比如已有gradle-3.3-all.zip,那么只需将最后一行替换掉:

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip。

重新启动即可。


4.Error:(1, 0) Plugin with id 'com.example.application' not found.

问题描述:导入project时报错找不到com.android.application插件,这很可能是开发人员在上传代码时直接把module的整个文件夹丟上去,缺失project里面的build脚本,导致下载者出现上述错误现象。
解决办法:
修改module下的build.gradle,在文件最后贴上红框内这段代码,最后try again,就导入成功了:

即以下代码:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        //注意:更换成自己的AS的版本,比如这里是2.2.3版本
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

5.'C:\Users\minmin\AppData\Local\Android\Sdk\platform-tools\adb.exe start-server' failed -- run manually if necessary

问题描述:编译项目开启模拟器的时候出现问题,提示“adb程序开启失败”,引发原因是adb程序的端口被占用。
解决办法:打开任务管理器将占用端口的程序kill掉。步骤为:
step1: 通过cmd查看占用adb端口的程序,adb默认端口为5037,因此查询代码为:

netstat -aon|findstr "5037"

step2:通过以上查询可知adb端口号被6404占用了,接下来继续通过cmd查询6404端口对应的程序,查询代码为:

tasklist|findstr "6404"

step3:通过以上查询可知是360手机助手程序占用了端口,然后打开任务管理器找到对应的程序kill掉,重新打开编译器即可。
题外话:还遇到一种特殊情况,最后发现是adb.exe占用。此时可以尝试重新启动AS,先点击“运行”出现对话框后,然后再连接真机,顺序一定不要反。


6.android.view.InflateException: Binary XML file line #6: Error inflating class com.examp...

问题描述:在引入自定义View时报错,排除是引入类名的错误(正确写法是包名.类名)之后,很可能是构造函数的问题。
解决办法:在自定义一个View时,派生实现基类View有三个构造函数:View(Context context) 、View(Context context, AttributeSet attrs)和View(Context context, AttributeSet attrs, int defStyle)。其中第二个和第三个构造函数对于XML引用方式是必须实现的,因此补全构造函数即可。


7. adapter调用notifyDataSetChanged()但失效

问题描述:很可能是因为数据源又指向了一个新的引用,而adapter只关心原地址所指向的数据有没有改变。
解决办法:先调用clear()方法清空数据源dataList,再调用addAll()方法添加新的数据。


8.Error:android.database.sqlite.SQLiteException: table Memo has no column named year (code 1):while compiling: INSERT INTO user(...) VALUES (?,?,?,?,?,?,?,?,?,?)

问题描述:数据库错误:添加数据时找不到该表的某一字段
解决办法:检查字段后是否用逗号“,”分开;检查赋值和取值时所有字段是否一致;检查赋值和取值时所用字段是否和表字段一致;如果更改表字段了,检查是否有对数据库进行重新卸载安装或者升级。


9.Error:java.lang.ArrayIndexOutOfBoundsException: length=2; index=3

问题描述:自定义一个BaseAdapter子类适配器时引发的问题,这里定义了两个type的item,在重写getItemViewType()方法里返回相对应的两种类型item的int值,但type的int值是从3开始。
解决办法:将type值分别改为0,1即可解决。

修改前

修改后

10. java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

问题描述:该类继承的是v7兼容包里的AppCompatActivity,却使用了非兼容包里的主题"@android:style/Theme.NoTitleBar.Fullscreen"或”@android:style/Theme.Black.NoTitleBar”,故导致程序崩溃。
解决办法:改为继承Activity


集齐十个可召唤神龙哦~
END

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 117,997评论 14 132
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 154,541评论 23 678
  • 大头突然陷入了中年危机。 但道理说,这样是不对的,因为我正处于如火如荼的找工作时期,本来就烦躁的要死,他突然也烦躁...
    语冰夏小胖阅读 286评论 1 2
  • 作者:赵泽文 苍茫宇宙,万物轮回,大自然向人们展示花的妩媚,树的挺拨,山的竦峙,水的流长……而我独爱那深邃...
    我有我的深蓝阅读 332评论 0 6
  • 你眼里有些晶莹闪烁,但你不会向谁倾诉什么; 从今天看过去,那些结痂的伤疤时常还是流血; 但在风雨中你愈加坚固自己,...
    广厦阅读 38评论 0 1