最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给apk统一签名导致,以下说一下如何解决这个问题。
生成keystore文件
命令:keytool -genkey -v -keystore "c:android elease elase.keystore" -alias androidbook –storepass paxxword -keyalg RSA -validity 14000
给应用程序签名
给应用程序签名有很多种方式,本文在此不多做介绍,最方便的就是直接使用ADT工具导出签名包。右键工程菜单-->Android Tools --> Export Signed Application Package
解决方式如上提示:
将Run full error check when exporting app前面的勾去掉就可以了
如果还出现类似""your_string_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, es, es-rUS, et, fa, fi, fr, hi, hr, hu, in, it, iw, ja, ko, lt, lv, ms, nb, nl, pl, pt, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rTW, zu strings.xml /projectname/res/values line 44 Android Lint Problem"的错误,在将 "MissingTranslation" 从 "fatal" 改为 "warning"或"warning"以下的选项。
继续
解决上面的问题之后应该没问题了吧,继续导出签名包,可能出现下面对话框,意思是需要把debugable设置一下
然而,只有android:debuggable="true"时我们才可以在手机上调试Android程序。幸好使用Eclipse运行这种方式打包时其debug属性为true,使用Eclipse导出这种方式打包时其debug属性为法false, 因此在AndroidMainifest.xml中最好不设置android:debuggable属性置,而是由打包方式来决定其值。
现在把AndroidMainifest.xml 中的android:debuggable="true"删除,这回就没有错误了
选择keystore文件,输入密码
设置key alias,并输入密码。这个密码是前面用keytools生成时输入的
如果出现导出时报错:Conversion to Dalvik format failed with error1 ,右键项目 -> Properties -> Java Build Path -> Libraries -> 移除所有jars,然后右键项目 -> Fix Project Properties