Android开发问题:Failed to install Hello.apk on device 'emulator-5554!

刚学Android,遇到了下面情况,[2011-06-1821:53:59-Hello]FailedtoinstallHello.apkondevice'emulator... 刚学Android ,遇到了下面情况,
[2011-06-18 21:53:59 - Hello] Failed to install Hello.apk on device 'emulator-5554!
[2011-06-18 21:53:59 - Hello] (null)
[2011-06-18 21:54:00 - Hello] Launch canceled!
怎没解决啊?
展开
 我来答
小幸运253253
2018-03-30 · TA获得超过1627个赞
知道答主
回答量:5
采纳率:0%
帮助的人:851
展开全部
  1. R.java消失或解析异常

  2. 自定义title栏

  3. SQLite isFirst和isBeforeFirst方法的区别

  4. eclipse删除空行

  5. getX()和getRawX()的区别

  6. imagView居中显示问题

  7. synchronized引发了 java.util.ConcurrentModificationException

  8. 获取随机颜色

  9. 去掉Activity的标题栏,全屏显示

  10. 如何修改应用名称及应用图标

  11. 关于调试方法

  12. Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.

  13. android.content.res.Resources.loadXmlResourceParser

  14. android.content.res.Resources$NotFoundException

  15. 交互性的button定义的方法

  16. 在超级终端中执行程序报错-Permission deny

  17. 从svn导入工程项目有惊叹号

  18. 从svn导入工程项目有惊叹号

  19. 首次进入带有EditText的Activity不自动弹出软键盘,再次点击才弹

  20. Gallery中OnItemClickListener与OnItemSelectedListener的区别

  21. Eclipse中签名导出apk崩溃,手动签名

  22. android.view.InflateException: Binary XML file line #异常的解决

  23. 将assets文件夹中的压缩包拷贝到sdcard中(不限大小)

  24. 判断是否有root权限

  25. 最简单的Root 模拟器的方法

  26. 新版ADT开启eclipse提示 "Running Android Lint" has encountered a problem

  27. 新版ADT开启eclipse提示 cannot open libstdc++.so.6..

  28. 无法升级ADT

1.R.java消失或解析异常

查看res中资源文件,图片,xml等。比如图片文件名不能有大写不能有空格。
搞定错误之后Project->clean就可以了。

2.自定义title栏
首先要z在values->styles中定义一个style,然后在mainfest文件中设置android:theme.
最后在Activity中按照这个顺序写:
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.activity_main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_layout);

3.SQLite isFirst和isBeforeFirst方法的区别:
看下面一段代码
Cursor c = queryTheCursor(type);
if(c.moveToLast())
while (!c.isBeforeFirst()) {
String tmpContent = new String();
tmpContent = c.getString(c.getColumnIndex("content"));
contents.add(tmpContent);
c.moveToPrevious();
}
c.close();  
代码的作用是逆序输出表中的内容,第三行如果用的是isFirst()的话就无法输出第一行,正确做发是用isBeforeFirst()。

4.eclipse删除空行 
在eclipse中删除某一行就用ctrl+D快捷键。如果你想删除一个文件中的所有空行呢。
可以用下面方法:
1)打开源码编辑器 
2)使用快捷键Ctrl+f 
3)在Find输入框中输入:^\s*\n 
4)Replace With输入框的值为空 
5)在【Options】选中的"Regular expressions" 
6)点击【Replace All】按钮。 
7)OK!

5.getX()和getRawX()的区别
getX()是表示Widget相对于自身左上角的x坐标
而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理 

6.imagView居中显示问题
xml设置如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myImageView"
android:layout_gravity="center"
android:scaleType="matrix"
android:src="@drawable/pic" >
</ImageView>
</LinearLayout>

7.synchronized引发了 java.util.ConcurrentModificationException
如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。
解决方法:初始化的时候 将ArrayList改为CopyOnWriteArrayList;
原理:
JAVA中将引用从一个对象移到另外一个对象不需要消耗CPU时间,可以看做是一个原子操作。
JAVA中如果一个对象仍旧存在引用,则不会被CG回收。      
CopyOnWriteArrayList就是根据以上两个特点,在列表有更新时直接将原有的列表复制一份,并再新的列表上进行更新操作,完成后再将引用移到新的列表上。旧列表如果仍在使用中(比如遍历)则继续有效。如此一来就不会出现修改了正在使用的对象的情况(读和写分别发生在两个对象上),同时读操作也不必等待写操作的完成,免去了锁的使用加快了读取速度。

8.获取随机颜色
并不用每次都生成三个随机数,下面两条语句就可以了:
Random myRandom=new Random();
int ranColor = 0xff000000 | mRandom.nextInt(0x00ffffff);

9.去掉Activity的标题栏,全屏显示
在manifest文件中修改对应的Avtivity属性。
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

10.如何修改应用名称及应用图标
修改程序的图标,修改drawable文件夹的i→→c_launcher.png图标,把新的图标改名覆盖就可以了。
如果你要自己的名称,可以修改AndroidManifest.xml的这个节点,application android:icon="@drawable/ic_launcher",不需要加文件扩展名。
即使这么做了,真机调试的时候可能还是会有一些问题,比如图标没办法改变,这个时候就需要在Eclipse中新建一个不同名的项目,然后转移代码(有点小麻烦~_~!)。

11.关于调试方法

调试的时候程序如果出错,一般是查看logcat,看error发生的地方,会提示在程序的第几行,然后去找就可以了。

但有些错误没办法定位,那就把日志输出成txt,然后去google,baidu吧。

12.Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
错误1:请求的字段在数据库的表中不存在,一般是大小写没写对;
错误2:编程的中途改变表的字段,实际字段并没有改变,解决方法是卸载当前版本,再安装调试。

13.android.content.res.Resources.loadXmlResourceParser
在传递string类做参数的地方传了int形变量。

14.android.content.res.Resources$NotFoundException
出现此类异常时,可以根据 Resource ID到资源类R中找相关的资源。比如0x7f030000,对应的是city_item布局文件,就可以将问题缩小到更小的范围。对于这类运行时找不到资源,但资源又确实存在的问题,可能的编译打包时出现问题,没有将该资源加入。可修改一下该资源,让编译器重新编译。 
还有试一下Project ->Clean一下这个项目 也可以的。

15.交互性的button定义的方法:
首先是准备好按钮不同状态的图片
然后 在res/drawable中定义selector的xml文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 定义按钮点击时的图片 -->
<item android:drawable="@drawable/addbtn_focus" android:state_pressed="true"/>
<!-- 定义按钮默认的图片 -->
<item android:drawable="@drawable/addbtn_lost"/>
</selector>
最后Button的background属性中设置
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:background="@drawable/addbtn_selector"/>

16.在超级终端中执行程序报错-Permission deny

参照http://android.stackexchange.com/questions/16814/terminal-permission-denied-need-more-info-on-error-message

主要原因是不能在sdcard中执行,直接进入data/目录下面创建文件,然后执行就可以了。

17.从svn导入工程项目有惊叹号

错误提示Archive for required library: 'libs/armeabi/libvudroid.so' in project 'DocumentViewer' cannot be read or is not a valid ZIP file

主要是路径出了问题

解决方法:在project的build-path将外部包(库)的引用删掉就可以了。

18.首次进入带有EditText的Activity不自动弹出软键盘,再次点击才弹出。

只有设置manifest的方法有用,在activity的设置中添加:

[html] view plain copy

  • android:windowSoftInputMode="adjustPan|stateHidden"

    19.Gallery中OnItemClickListener与OnItemSelectedListener的区别

  • OnItemClickListener:只有单击Gallery中的View才会触发事件,准确的说是当点击之后抬起手的时候触发,滑动不会触发。

    OnItemSelectedListener:当Gallery中的View被选中的时候就会触发,Galler初次显示就会触发一次,选中第一个iew,滑动和单击都会触发。

    20.从16进制中提取颜色的rgb分量。

    主要就是通过位运算来实现。

    [java] view plain copy

  • public class Main {  

  • public static void main(String[] args) {  

  • // TODO Auto-generated method stub  

  • int INK_COLOR = 0xFF11ef23;  

  • float r = getColorR(INK_COLOR );  

  • float g = getColorG(INK_COLOR );  

  • float b = getColorB(INK_COLOR );  

  • System.out.print(r+" "+g+" "+b);  

  • }  

  • public static float getColorR(int c)  

  • {  

  • int R = (c & 0x00FF0000 )>>16;  

  • return (float) (R/255.0);  

  • }  

  • public static float getColorG(int c)  

  • {  

  • int G =(c & 0x0000FF00 )>>8;  

  • return (float) (G/255.0);  

  • }  

  • public static float getColorB(int c)  

  • {  

  • int B = c & 0x000000FF;  

  • return (float) (B/255.0);  

  • }  

  • }  



  • 21. Eclipse中签名导出apk崩溃,手动签名。

    工程没问题,调试也没问题,但打包的时候eclipse会崩溃,解决方法是手动打包。

    首先去工程目录下的bin文件夹下找到apk文件,解压后删除META-INF文件夹,重新打包成压缩包,改后缀名为.apk

    首先是签名(假设你已经在根目录下生产了密钥keystore):

    进入java安装目录/bin文件夹下:

    [plain] view plain copy

  • ./jarsigner  -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore ~/Output.apk android  

  • 然后是优化,进入sdk的tools文件夹下,运行。

    [plain] view plain copy

  • ./zipalign -v 4 ~/Output.apk Output_realase.apk  

  • 当前目录下Output_realase.apk就是打包签名好的apk了。

22.android.view.InflateException: Binary XML file line #异常的解决

创建自定义view的时候,碰到 android.view.InflateException: Binary XML file line #异常,反复研究
后发现是缺少一个构造器造成。

[java] view plain copy

  • public MyView(Context context,AttributeSet paramAttributeSet)  

  • {  

  • super(context,paramAttributeSet);  

  • }  

  • 补齐这个构造器,异常就消失了.

    23.将assets文件夹中的压缩包拷贝到sdcard中(不限大小)

    [java] view plain copy

  • public static void copyAssetToSdcard(Context c, String assetFile, String destination) throws IOException {    

  • InputStream in = c.getAssets().open(assetFile);    

  • File outFile = new File(destination);  

  • OutputStream out;    

  • Log.v("Try", "Try coping.");  

  • try {  

  • if (!(new File(destination)).exists()) {  

  • Log.v("Try", "Not exists..");  

  • out = new FileOutputStream(outFile);  

  • copyFile(in, out);  

  • in.close();  

  • in = null;  

  • out.flush();  

  • out.close();  

  • out = null;  

  • }  

  • } catch (Exception e) {  

  • Log.v("Error", "Error in if。");  

  • }  

  • }    

  • public static void copyFile(InputStream in, OutputStream out) throws IOException {  

  • Log.v("Coping", "copyFiling.");  

  • byte[] buffer = new byte[1024];  

  • int read;  

  • while ((read = in.read(buffer)) != -1) {  

  • Log.v("read:", "" + read);  

  • out.write(buffer, 0, read);  

  • }  

  • }  

  • 24.判断是否有root权限

    [java] view plain copy

  • public static synchronized boolean getRootAhth()  

  • {  

  • Process process = null;  

  • DataOutputStream os = null;  

  • try  

  • {  

  • process = Runtime.getRuntime().exec("su");  

  • os = new DataOutputStream(process.getOutputStream());  

  • os.writeBytes("exit\n");  

  • os.flush();  

  • int exitValue = process.waitFor();  

  • if (exitValue == 0)  

  • {  

  • return true;  

  • } else  

  • {  

  • return false;  

  • }  

  • } catch (Exception e)  

  • {  

  • Log.d("*** DEBUG ***", "Unexpected error - Here is what I know: "  

  • + e.getMessage());  

  • return false;  

  • } finally  

  • {  

  • try  

  • {  

  • if (os != null)  

  • {  

  • os.close();  

  • }  

  • process.destroy();  

  • } catch (Exception e)  

  • {  

  • e.printStackTrace();  

  • }  

  • }  

  • }  

  • 25.最简单的Root 模拟器的方法

    启动一个模拟器,开始-运行-输入cmd,打开dos,依次输入
    adb shell
    mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
    cd /system/bin
    cat sh > su
    chmod 4755 su
    su
    即可获得root权限

    26.新版ADT开启eclipse提示 "Running Android Lint" has encountered a problem

    进Eclipse,Window > Preferences > Android > Lint Error Checking, u去掉 "When saving files check for errors"的勾。

    27. 新版ADT开启eclipse提示 cannot open libstdc++.so.6..

    要安装32位的库。

    sudo apt-get install lib32stdc++6
    sudo apt-get install lib32z1

    28.无法升级ADT

    I want to install ADT plugin in Eclipse with Zip file but when i click on next button in first page of install, the progress late long time. I wait around 3hours that i wait for install but now half ADT install :(
    In install window, above of progress bar, writes: cannot perform operation.Computing alternate solutions, may take a while: 7/15 .
    Why to install ADT needs a long time? Is this no problem or install has a problem?
    sorry for my poor english and Thanks for help

    由于官方对android开发的ide主推Android Studio,对eclipse也就少了很多,ADT-bundle也停止了更新,所以出现了上面的问题。

    解决方法是从Eclipse官网下载最新版本的Eclipse,最新版的ADT插件。


aohanglove
推荐于2017-11-25 · TA获得超过109个赞
知道答主
回答量:34
采纳率:50%
帮助的人:18.7万
展开全部
或者你看看Hello.apk的 AndroidMainfest.xml文件中android:minSdkVersion="10"
android:targetSdkVersion="15" /> 这里写的Sdk要求最低版本是多少,如果最低要求高于你创建的模拟器,那就装不了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碎心飞梦
2014-10-29
知道答主
回答量:22
采纳率:100%
帮助的人:3.2万
展开全部
我的解决方法:打开Androidmainfest。xml文件, android:targetSdkVersion=一个数字a",将a改成与所用AVD的API版本相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
企鹅去阿达
2013-04-18
知道答主
回答量:2
采纳率:0%
帮助的人:2977
展开全部
android的虚拟器设置的版本低于你的sdk版本
或者你可以尝试一下,先打开SDT等待SDT刷出界面再运行你的hello工程,我就遇到了这种情况,事了一下果然好用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
开傲云5L
2013-12-13
知道答主
回答量:4
采纳率:0%
帮助的人:5575
展开全部
Window -> Preferences -> Android->DDMS ->ADB connection time out .修改成大一点如10000

Try changing the ADB connection timeout. I think it defaults that to 5000ms and I changed mine to 10000ms to get rid of that problem. If you are in Eclipse, you can do this by going through Window -> Preferences and then it is in DDMS under Android.

I hope this can help you!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式