如何通过eclipse导出未签名apkAndroid应用程序并对其签名

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
开发好Android以后,利用 Eclipse 的导出带签名的APK程序时候报如下错误:
Export aborted because fatal lint errors were found.These are listed in
the Problems view.Either fix these before running Export again,or turn
off "Run full error check when exporting app" in the Android & Lint
Error checking preference page.
解决办法如下:
在 eclipse中 打开& Windows 菜单下 属性选项卡,在左边 android 下面的 Lint Error checking 下面 将Run full error check when exporting app前面的勾去掉就可以了
阅读(4368)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'eclipse无法导出android签名包的问题',
blogAbstract:'&
开发好Android以后,利用 Eclipse 的导出带签名的APK程序时候报如下错误:
Export aborted because fatal lint errors were found.These are listed in
the Problems view.Either fix these before running Export again,or turn
off \"Run full error check when exporting app\" in the Android & Lint
Error checking preference page.
解决办法如下:
在 eclipse中 打开& Windows 菜单下 属性选项卡,在左边 android 下面的 Lint Error',
blogTag:'',
blogUrl:'blog/static/8',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:8,
permalink:'blog/static/8',
commentCount:1,
mainCommentCount:1,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}如何通过Eclipse导出Android应用程序并对其签名_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何通过Eclipse导出Android应用程序并对其签名
我有更好的答案
、第一种方式(打包不带签名):的apk可以直接运行项目,然后可以在项目的bin文件夹中找到apk文件2,鼠标右键-》Android Tools-》选择Export UnSigned Application Package-》然后选择apk存放的路径即可3、第二种方式(打包不带签名):选择需要打包的项目
采纳率:43%
来自团队:
为您推荐:
其他类似问题
android的相关知识
等待您来回答如何通过Eclipse导出Android应用程序并对其签名_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
如何通过Eclipse导出Android应用程序并对其签名
我有更好的答案
//jingyan:
采纳率:72%
来自团队:
为您推荐:
其他类似问题
android的相关知识
等待您来回答  今天用 APK 反编译工具看了一下自己项目生成的 APK 文件,发现代码并没有混淆,于是设置了用 ProGuard 混淆代码,可是混淆是必须在非 Debug 模式才会生效的,即使你是以 Release 模式来 Run As 启动所生成的 APK 包,依然是没有使用 ProGuard 混淆的。于是决定导出一下 Release 版的 APK,导出分&签名&和&不签名&的两种,都这么做了,当然是要签名一下了,所以遇到了后面这两个问题。
一、strings.xml 的翻译问题
  在你的项目名字上面点鼠标右键,弹出下面的菜单,选择 Android Tools -& Export Signed Application Package... ,
然后会看到这么一个提示:
并且得到下面这样的错误描述:
大意是,导出操作因为 Lint Error Checking (检测 Lint 错误) 出现致命错误而退出,请修正这些错误再运行导出,或者在设置里的 Android -& Lint Error Checking 页面里把 &Run full error check when exporting app& 把选项关掉。
而错误描述里面的说的是,strings.xml 里面的 app_name 缺少 af(Afrikaans), am(Amharic), ar, bg, bn-rBD, ca, cs, da, de ... 等语言的翻译,这个可能跟创建工程时自动生成的项目 appcompat_v7 里的 strings.xml 的语言数量有关,我们当然不希望每种语言都翻译一遍啊,纯属吃多了,除非我们真的想每种语言都翻译。
另一方面,我们也不希望关掉所有的 Lint Error Checking,所以我们可以这么做,打开 Eclipse 菜单的 Windows -& Perferences,
切换到 Android -& Lint Error Checking 子项下面,下面这是 Missing Translation 的默认设置:
我们可以把这一项的 Severity 由 Fatal (致命) 修改为 Ignore(忽略) 或者 Warning(警告),如下图:
另:关于多语言翻译的问题,有一个问题是值得关注的,例如:《》。
二、签名 keystore 的逗号问题
点击确定,然后重新开始前面的步骤,开始导出,这次可以了,下面是导出的界面,选择你要导出的项目:
后面就是选择 keystore ,你可以选择已经存在的 keystore 或者新建一个 keystore,我选择新建,输入密码,然后进入下面这个设置界面:
下一步,最后生成的时候,我们得到这样一个错误:
Google 一下,找到这么一篇: 《》,stackoverflow 上也有类似的讨论: ,结论都是一样的,原来原因竟然是因为 &,&(逗号) 被认为是特殊字符,这通常发生在书写 &City or Locality& 时,按我们平时的习惯都会写成 &Beijing, China&,而我也不例外的写成了 &GuangXi, China& ,所以就出错了,找到原因,去掉逗号再试,就 OK 了。
除了用 Eclipse 以外,还有一种签名方法,就是使用 Keytool 和 Jarsigner 给 app 签名,而这种签名是允许加入这个逗号的,《》 里有提到。
这里贴一个 keytool 关于特殊字符的说明及用法,摘自:,
特殊字符还包括,加号(+),引号("),斜杠(\),大于小于号(& 和 &),分号(;) 等,解决的办法是用 \ 转义符。
关于 Android APP 签名更详细的资料请参阅:
阅读(...) 评论()posts - 320,&
comments - 73,&
trackbacks - 0
生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的。
如果想要自己给apk签名:
1.签名的意义  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。2.签名的步骤  a.创建key  b.使用步骤a中产生的key对apk签名3.具体操作  方法一: 命令行下对apk签名(原理)  创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入D:\&keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore/*说明:-genkey 产生密钥& && & -alias demo.keystore 别名 demo.keystore& && & -keyalg RSA 使用RSA算法对签名加密& && & -validity 40000 有效期限4000天& && & -keystore demo.keystore */D:\&jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore/*说明:-verbose 输出签名的详细信息& && & -keystore&&demo.keystore 密钥库位置& && & -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/  注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键-&Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。  方法二:使用Eclipse导出带签名的apk  Eclipse直接能导出带签名的最终apk,非常方便,推荐使用,步骤如下:  第一步:导出。
  第二步:创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到。
  第三步:填写密钥库信息,填写一些apk文件的密码,使用期限和组织单位的信息。
  第四步:生成带签名的apk文件,到此就结束了。
  第五步:如果下次发布版本的时候,使用前面生成的keystore再签名。
  第六步:Next,Next,结束!  方法三:使用IntelliJ IDEA导出带签名的apk   方法步骤基本和Eclipse相同,大概操作路径是:菜单Tools-&Andrdoid-&Export signed apk。4.签名之后,用zipalign(压缩对齐)优化你的APK文件。  未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于android-sdk-windows\tools目录下)工具对其优化:D:\&zipalign -v 4 demo_signed.apk final.apk  如上,zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(4个字节是一个性能很好的值),这样android系统就可以使用mmap()(请自行查阅这个函数的用途)函数读取文件,可以在读取资源上获得较高的性能,  PS:1.在4个字节边界上对齐的意思就是,一般来说,是指编译器吧4个字节作为一个单位来进行读取的结果,这样的话,CPU能够对变量进行高效、快速的访问(较之前不对齐)。& && && & 2.对齐的根源:android系统中的Davlik虚拟机使用自己专有的格式DEX,DEX的结构是紧凑的,为了让运行时的性能更好,可以进一步用"对齐"进一步优化,但是大小一般会有所增加。5.签名对你的App的影响。   你不可能只做一个APP,你可能有一个宏伟的战略工程,想要在生活,服务,游戏,系统各个领域都想插足的话,你不可能只做一个APP,谷歌建议你把你所有的APP都使用同一个签名证书。   使用你自己的同一个签名证书,就没有人能够覆盖你的应用程序,即使包名相同,所以影响有:  1) App升级。 使用相同签名的升级软件可以正常覆盖老版本的软件,否则系统比较发现新版本的签名证书和老版本的签名证书不一致,不会允许新版本安装成功的。  2) App模块化。android系统允许具有相同的App运行在同一个进程中,如果运行在同一个进程中,则他们相当于同一个App,但是你可以单独对他们升级更新,这是一种App级别的模块化思路。  3) 允许代码和数据共享。android中提供了一个基于签名的Permission标签。通过允许的设置,我们可以实现对不同App之间的访问和共享,如下:AndroidManifest.xml:&permission android:protectionLevel="normal" /&其中protectionLevel标签有4种值:normal(缺省值),dangerous, signature,signatureOrSystem。简单来说,normal是低风险的,所有的App不能访问和共享此App。dangerous是高风险的,所有的App都能访问和共享此App。signature是指具有相同签名的App可以访问和共享此App。signatureOrSystem是指系统image中App和具有相同签名的App可以访问和共享此App,谷歌建议不要使用这个选项,因为签名就足够了,一般这个许可会被用在在一个image中需要共享一些特定的功能的情况下。
阅读(...) 评论()

我要回帖

更多关于 必须对其进行强签名 的文章

 

随机推荐