今天在运行android工程时出现INSTALL_PARSE_FAILED_NO_CERTIFICATES错误,导致工程无法在设备上调试。
网上找了些资料,列出些解决方法:
方法一:
删除src目录下以中文命名的文件,或者重命名src下以中文命名的文件。
此方法只是根据一些网友的说法列出,我并没有验证过,参考资料:http://hi.baidu.com/darrenchen914/item/6995f705b5127618cc34eacd
方法二:
打开android sdk保存路径下的文件<ANDROID-SDK>/tools/ant/build.xml,找到name为-release-sign的标签,在此标签中加入sigalg="MD5withRSA" digestalg="SHA1"这两个属性和值即可。标签修改完后及如下:
<target name="-release-sign" if="has.keystore" sigalg="MD5withRSA" digestalg="SHA1">
<!-- only create apk if *not* a library project -->
<do-only-if-not-library elseText="Library project: do not create apk..." >
<sequential>
<property name="out.unaligned.file" location="${out.absolute.dir}/${ant.project.name}-release-unaligned.apk" />
<!-- Signs the APK -->
<echo level="info">Signing final apk...</echo>
<signapk
input="${out.packaged.file}"
output="${out.unaligned.file}"
keystore="${key.store}"
storepass="${key.store.password}"
alias="${key.alias}"
keypass="${key.alias.password}"/>
<!-- Zip aligns the APK -->
<zipalign-helper
in.package="${out.unaligned.file}"
out.package="${out.final.file}" />
<echo level="info">Release Package: ${out.final.file}</echo>
</sequential>
</do-only-if-not-library>
<record-build-info />
</target>
方法二为我的使用的方法,照此修改确实问题解决了。参考资料:
http://blog.softteco.com/2012/06/getting-installparsefailednocertificate.html