今天在升级一个早期Android项目到新版Eclipse ADT SDK后,编译运行项目后Android Console中出现标题中的错误,特此记下解决方法:
导致这个问题的原因是由于Android项目属性中的Java Compiler设置为1.6版本的,而Eclipse的Preference中的被设置为1.7所致,也换成1.6就不会提示这个错误了!
欢迎留言、转载请注明出处
今天在升级一个早期Android项目到新版Eclipse ADT SDK后,编译运行项目后Android Console中出现标题中的错误,特此记下解决方法:
导致这个问题的原因是由于Android项目属性中的Java Compiler设置为1.6版本的,而Eclipse的Preference中的被设置为1.7所致,也换成1.6就不会提示这个错误了!
最近开始研究Google Play的In-app Billing IAB内置计费API,发现一个比较烦人的问题就是测试时应用必须经过正式签名,而默认Eclipse ADT调试运行使用的是临时生成的Debug专用证书,默认为C:\Users\XXX\.android\debug.keystore。
于是每次调试内置计费必须使用ADT的Export Signed Application Package打带正式签名的包,比较麻烦。后来发现ADT允许自定义调试用证书,在Window->Preferences->Android->Build->Custom debug keystore这里,试了一下选择正式证书后提示:”Keystore was tampered with, or password was incorrect”,如下图所示:
Continue reading…
Android系统不像iOS有shouldAutorotateToInterfaceOrientation:以及项目info.plist中的支持屏幕朝向属性设置那么直白的屏幕朝向支持,而且2.2以下和2.3以上还有对自动旋屏功能支持的差异:
在2.2一下,manifest中可以通过android:screenOrientation=”landscape”属性设置朝向,但这显然没有像iOS那样指明是landscape right还是landscape left,而且测试发现实际效果也只是锁定在了landscape的一个朝向,并不支持根据重力感应的两方向自动旋转。
在2.3及以上的target下,可以通过设置android:screenOrientation=”sensorLandscape”实现landscape的两方向自动旋转,为了同时兼容两种情况,可以采用以下的方法:
public static final int ANDROID_BUILD_GINGERBREAD = 9; public static final int SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= ANDROID_BUILD_GINGERBREAD) { setRequestedOrientation(SCREEN_ORIENTATION_SENSOR_LANDSCAPE); } }
之前用MotoDroid机器的时候曾经发现过一个比较恶心的事,就是glGenTextures函数生成的贴图ID是乱数的问题,后来发现GL官方也说不保证此函数返回值是连续正整数,也就罢了。这次又发现MotoDroid上的glTexSubImage2D函数问题,就是在获取gl信息中的最大贴图尺寸时,ME525和Milestone2都返回2048×2048(其它机型未测),但在贴图尺寸为2048×2048的时候调用glTexSubImage2Dj局部更新贴图时,会出现错误覆盖贴图已有内容的问题,而将贴图尺寸降为1024×1024后就不会出现这种问题了。
先说出这问题时的周遭环境:
Android SDK Tools r12
Android SDK Platform-tools r6
Android NDK r6
HTC G10 DesireHD(root)
Eclipse 3.7 Indigo
ADT 12.0.0
Windows XP SP3
问题描述:按着Sequoyah Native Debug的教程走,到执行ndk-gdb起服务的时候,提示”found running pid:0 could not extract pid of application…”说找不到程序的PID(顺带一提,之前还有一次是提示could not extract package’s data directory…,经查发现原因应该是设备没有root),执行adb shell ps发现要调试程序的进程就在那里,PID也看到正常,为什么ndk-gdb说获取不到PID呢?
问题概述:
在导入一个app后提示如下错误:
“Error generating final archive: Debug Certificate expired on 10/09/18 16:30”
原因分析:
android要求所有的程序必须有签名,否则就不会安装该程序。在我们开发过程中,adt使用debug keystore,在 preference->android->buid中设置。debug的keystore默认有效期为一年,如果你是从一年前开始完android程序,那么在一年后导入这个app的时候很可能出现debug keystore过期,导致你无法生成 apk文件。
此时你只要删除debug keystore就行,系统又会为你生成有效期为一年的私钥。
解决方法:
进入C:\Documents and Settings\Administrator\.android 删除路径下的debug.keystore及 ddms.cfg。
(不同环境下的目录可能略有不同,可在eclipse中查找此路径:Window->Preferences->Android->Build下 Default debug keystore)
然后重新导入即可。
原文:http://www.cnblogs.com/yyangblog/archive/2011/01/07/1929657.html
原来的Android项目中,鼠标移上系统api的函数什么的后会显示javadoc注释,很方便,后来换过一次sdk位置,结果发现系统api的注释都没了,其实只要修改一下项目属性中的Java Build Path中Libraries里对应SDK的jar的Javadoc location就可以了,更新路径后,这个属性没有对应修改。
假设已有ADT创建的android项目HelloAndroid并且已经有可用的proguard混淆器(我用的proguard4.4)。
第一步要做的是为项目添加ant build支持。由于ADT插件并不直接支持proguard等混淆器,所以不能像j2me那样在有功能比较完善的插件(如EclipseME等)的基础上直接一键混淆一键打包,不过好在android sdk本身提供了比较完善的ant编译支持,可以通过类似命令行编译的方式,对android项目的整个编译、生成过程进行自定义,从而能够实现对编译中途生成的java bytecode进行插入proguard混淆操作然后再转android dex码生成apk。
进入命令行模式,并切换到项目目录,执行如下命令为ADT创建的项目添加ant build支持:
Continue reading…
发现1:当开启DEBUG_LOG_GL_CALLS的时候,会判断所有原本运行正常的glDrawArrays出现数组越界的异常,修改了几下,发现开启log calls后,会多读1个点的数据,也就是最后一个参数的count+1,所以原本正常长度的顶点数组会被访问越界,不晓得为何会这样。
发现2:在真机上使用vbo的时候,如果开了debug,会导致在调用vbo相关gl函数的时候出现unsupported操作异常,可实际vbo功能却执行的好好的,同样不晓得为何会这样。
Emulated Device Key | Keyboard Key |
---|---|
Home | HOME |
Menu (left softkey) | F2 or Page-up button |
Star (right softkey) | Shift-F2 or Page Down |
Back | ESC |
Call/dial button | F3 |
Hangup/end call button | F4 |
Search | F5 |
Power button | F7 |
Audio volume up button | KEYPAD_PLUS, Ctrl-5 |
Audio volume down button | KEYPAD_MINUS, Ctrl-F6 |
Camera button | Ctrl-KEYPAD_5, Ctrl-F3 |
Switch to previous layout orientation (for example, portrait, landscape) | KEYPAD_7, Ctrl-F11 |
Switch to next layout orientation (for example, portrait, landscape) | KEYPAD_9, Ctrl-F12 |
Toggle cell networking on/off | F8 |
Toggle code profiling | F9 (only with -trace startup option) |
Toggle fullscreen mode | Alt-Enter |
Toggle trackball mode | F6 |
Enter trackball mode temporarily (while key is pressed) | Delete |
DPad left/up/right/down | KEYPAD_4/8/6/2 |
DPad center click | KEYPAD_5 |
Onion alpha increase/decrease | KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/) |
模拟器只能在尚未运行的时候通过设置界面调整屏幕大小,位置等信息,运行时并没有提供菜单或者其他UI进行调整,比如想切换landscape模式,就得通过上面的快捷键实现了。