Android常见错误
1、Unable to resolve target 'android-2'
安装低版本的api,再default.properties 这个文件中把target=android-2 改成 target=android-7终于就没有问题了。
2、Invalid start tag LinearLayout
main.xml放错文件夹了,应该在\res\layout下。
3、INSTALL_FAILED_INSUFFICIENT_STORAGE
原因:SD卡内存容量不够
法一:在下图的“Additional Emulator Command Line Options”中加上“-partition-size 128”
法二:启动模拟器,然后进入菜单
settings->applications->mange applications-> select the application->select "unistall".
这样就能彻底删除了,然后再重新安装这个apk就没问题了
4、No Space left on device
清除C:\Users\Lanyan\AppData\Local\Temp\AndroidEmulator文件夹下的tmp文件
参考资料:http://hi.baidu.com/boderboder/blog/item/af2a81de31dc3f235982ddd8.html
5、Could not open the editor: Resource is out of sync with the file system
当右击default.properties打开时,出现下图错误:
解决方法:右击工程,Refresh一下就好了。
原因:Usually happens when some files are edited outside of eclipse。
6、Invalid project description
网上的解决方法是:在项目根目录下的.project文件中,找到<name>cms6.0</name> 将cms6.0改为和项目目录名称一致。
解决方法:我已经将该工程导入Eclipse,一个工程不能重复导入两次;或者把你的文件夹考的别的目录下然后重新导入即可。
原因:有两份相同的AndroidManifest.xml的描述性文件。
7、java.lang.SecurityException: Requires VIBRATE permission
解决方法:在AndroidManifest.xml中加上一句
“<uses-permission android:name="android.permission.VIBRATE"></uses-permission>”
原因:权限问题导致,因为使用了震动功能。
8、Activity not started, its current task has been brought to the front
解决方法:在Eclipse中,“project”-->“clean…”
原因:模拟器中还有东西在运行,也就是你要运行的activity已经有一个在模拟器中运行了不要以为你的模拟器退出到桌面了就没有东西在跑了。在你调试的时候异常关闭的程序有可能就有activity在运行。
9、ArrayAdapter requires the resource ID to be a TextView
问题描述:java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView而
adapt = new ArrayAdapter <String>(this, R.layout.main, infoList);
这句中布局main中的布局可能不是TextView对象。
adapt = new ArrayAdapter <String>(A1, A2, A3);
参数A2是一个“resource ID to be a TextView
解决方法:A2改为:android.R.layout.simple_spinner_dropdown_item
10、R.java文件突然不见了
解决方法:右键项目-->Build Project
原因:res/drawable下的文件名只能是在a~z、0~9之间字符组成。
10、ScrollView can host only one direct child。
解决方法:需要把所有的子元素放到一个LinearLayout内部或RelativeLayout等其他布局方式。
原因:主要是ScrollView内部只能有一个子元素,即不能并列两个子元素。
11、emulator: ERROR: the user data image is used by another emulator. aborting
没有正常关闭导致的,删除android-sdk-windows\.android\avd\对于版本\下的以.lock结尾的文件夹就行。
原因:.lock是加锁,如果程序崩溃等原因导致无法清除这些以.lock结尾的文件夹,就会出现这个问题,也就是这个avd的锁没有被释放,导致avd manager以为这个avd正在使用当中。
12、* daemon not running. starting it now *
ADB server didn't ACK
* failed to start daemon *
已经确认adb.exe的路径没有问题,重启了两次模拟器和eclipse还是不行,上网查了下资料~
解决办法:
(1)查看任务管理器,关闭所有adb.exe;(2)重启eclipse即可
13、android.content.res.resources notfoundexception
在Manifest.xml中加上:<uses-sdk android:minSdkVersion="5"/>,或者将5改成6,其他值也一样加1
14、Unable to instantiate activity ComponentInfo
解决方案:更改activity android:name="Acitivity"为activity android:name=".Acitivity"
原因:AndroidManifest.xml配置activity的路径时出错了
15、工程名上有红色感叹号
解决方案:右键项目名称BuildPath--->ConfigureBuildPaht...中,然后上面有几个选项卡找到Libraries中出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。
问题原因:工程中classpath中指向的包路径错误。
解释:用myeclipse新建web工程,在工程目录下会生成一个.classpath配置文件,里面是你工程里面引用的jar的配置。这个.classpath对你的web工程没有什么影响,其实是给myeclipse识别的。你说的这种情况是因为.classpath文件里面配置引用了某个jar,但是实际上你的lib里面并没有这个jar所以才会有红色的提示。你不用拿.classpath文件和你的jar一个个去找,你现在打开MyEclipse右键单击你的web工程,找到BuildPath-->ConfigureBuildPaht...-->然后上面有几个选项卡找到Libraries。这里看到的就是你工程里面引用的所有的jar,看看是不是在某个jar图标上有个很小的黄色的感叹号?如果有的话就没错了,先选中这个jar,点击右边的Remove-->点击OK等待几秒,现在web工程上面的红色XX是不是没有了,哈哈。解释一下:黄色的感叹号的jar,表示.classpath配置文件引用了jar,但是实际上lib里面没有这个jar。
16、使用Intent时出现另一个活动未发现的异常(ActivityNotFoundException)
解决方案:在AndroidManifest.xml中再加一个<activity android:name=".Filelist" android:label="@string/app_name" />
17、Fail to connect to camera service
在AndroidManifest.xml中添加<uses-permission android:name="android.permission.CAMERA" />
如果还是不行
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
mCamera.stopPreview();
mCamera.release();//加上这句,就OK!
mCamera=null;
}
18、android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。
导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
19、java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
在任务管理器中终止adb服务,关闭手机调试或者模拟器,重启就好了。
http://hi.baidu.com/o%B0%D7%C9%AB%B5%C4%D4%C6/blog/item/024c3c6bfb6440c180cb4a3d.html
20、java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
两个表示位置的属性不能同时使用,但是有些一起用又没有报异常,不太了解。
如android:layout_alignParentTop="true" android:layout_centerHorizontal="true"
21、No resource found that matches the given name
在相对布局中,若是用到android:layout_above属性,并且其后id之前没有出现过,那么需要这样写:android:layout_above="@+id/vidAdd_ButtonGroup",多加一个“+”。
22、@Override错误
Window->Preferences->Java->Compiler.
把Compiler compliance level的级别改成1.6,每个工程属性里只要默认设置就行了,不要设置specific.
23、PANIC: Could not open: C:\Users\Lanyan\.android/avd/SDK2.2.ini
添加android_sdk_home系统变量,其值为想要保存avd的目录,例如我放在D:\Program Files\android\avd下。
24、Activity has leaked window that was originally added
原因1:重写onKeyDown时,return super. onKeyDown(int keyCode, KeyEvent event)没有修改;
原因2:关闭Activity时,没有关闭AlertDialog造成的。
法一:将return super. onKeyDown(int keyCode, KeyEvent event)改为return false;
法二:@Override
protected void onPause()
{
super.onPause();
//关闭对话框
AlertDialog.dismiss();
}
法三:AndroidManifest.xml中,在相应的<Activity>节点中添加
android:configChanges="orientation|keyboardHidden|navigation"
25、unable to instantiate application
解决方法1:在AndroidManifest.xml中的application里的android:name要去掉;
解决方法2:全局类或者变量私有;
解决方法3:package路径错误。
26、IllegalArgumentException 'Provider "gps" unknown"
locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);触发不了LocationManager
加入以下一段参数就好了:
mLocationManager.addTestProvider(LocationManager.GPS_PROVIDER,
"requiresNetwork" == "", "requiresSatellite" == "", "requiresCell" == "", "hasMonetaryCost" == "",
"supportsAltitude" == "", "supportsSpeed" == "",
"supportsBearing" == "", android.location.Criteria.POWER_LOW,
android.location.Criteria.ACCURACY_FINE);
参考:http://hi.baidu.com/mycollection/blog/item/ee700a3895079fecb211c7eb.html