AS开发错误整理

此文章记录平时开发遇到的错误,持续更新。


1.当移植项目报出有关“cruncher”的错误,在检查图片没有错误时。可以尝试在“build.gradle”加入


aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false

2.java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent
first.  

3.getDeviceId: Neither user 10079 nor current process has android.permission.READ_PHONE_STATE.
 
在AndroidManifes.xml添加READ_PHONE_STATE权限之后,依然报错。后来发现,是targetSdkVersion问题,当把其值设置为23时,就会报错。android 6.0以上增加了动态获取权限api,想要动态获取手机的权限。类似iOS那样,在使用时,弹出对话框,提示用户,请求用户允许。如果你没做处理,就会报错。
添加对应权限,仍然报错的问题。都适用这种方法解决。

4.EmptyThrowable: The APK file D:\AndroidProject\LostFoundDemo\app\build\outputs\apk\app-debug.apk does not exist on disk.
enter image description here
 

5.Error:(13, 43) String types not allowed (at 'android:layout_width' with value 'wrap_content').
把报错部分删掉编译,让它报缺少宽度的错误,然后再把代码贴回去

 

6.Error:(1, 1) 错误: 非法字符: '\ufeff'
Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符: ‘\ufeff‘ “之类的错误。手动将AS下代码转换为UTF-8。

7.import android.support.v7.app.AppCompatActivity  提示 can't resolve the symbol "app"
在v7包已经导入的情况下报错,可以先删除包,然后重新导入。
 

8.Gradle method not found: ‘runProguard()’报错 
一般造成这种原因是因为AS升级到1.0之后,‘runProguarg()’废弃使用,造成方法报错。可以把gradle改回去解决问题,最好的解决办法是将build.gradle文件中的runProguard方法改为minifyEnabled。
 

9.隐式启动service,报错:service intent must be explicit 
android 5.0之后,不能再按原来方式隐式启动service,解决方法:
startservice:startService(new Intent(getApplicationContext(), LoadContactsService.class)); 
bindService:  Intent service = new Intent("android.intent.action.AIDLService"); 的基础上,要加上包名: service.setPackage("com.xxx.xxxserver"); 

10.在AS环境下,当AIDL文件同时存在java文件与aidl文件时,如果依然按照eclipse创建文件的方法,程序就会报出错误:Symbol not found 的错误 
原因在于Gradle 默认是将 java 代码的访问路径设置在 java 包下的,这样一来,如果 java 文件是放在 aidl 包下的话那么理所当然系统是找不到这个 java 文件的。
解决方法: 
1,修改 build.gradle 文件:在 android{} 中间加上下面的内容:
sourceSets {main { java.srcDirs = ['src/main/java', 'src/main/aidl']}}
2,把 java 文件放到 java 包下去,包名保持不变
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值