请教Android内置应用Browser编译成APK的问题

获取Browser应用源代码,使用android.bat生成ant编译脚本,编译时报告缺少

com.google.android.googleapps.IGoogleLoginService

查相关资料了解到 该包是google提供的可选包,可以在源码目录的以下位置找到:

frameworks\opt

 

我将opt目录下的client.jar 和 framework.jar 放在Project的libs目录下(即第三方jar包所在的目录下)。

 

再执行编译时会报告以下错误:

dex:
    [echo] Converting compiled files and external libraries into bin/classes.dex...
    [apply] UNEXPECTED TOP-LEVEL EXCEPTION:
    [apply] java.lang.IllegalArgumentException: already added: Lcom/google/android/googleapps/IGoogleLoginService$Stub$Proxy;
    [apply] 	at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
    [apply] 	at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
    [apply] 	at com.android.dx.command.dexer.Main.processClass(Main.java:299)

再不知道为什么又会报告已经添加过了?

 

于是我再从build.xml中的dex任务中排除掉以上jar包。此时编译正常了。安装编译的apk时也正常,但运行是出现以下错误:

W/dalvikvm(  849): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
E/AndroidRuntime(  849): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(  849): java.lang.VerifyError: com.android.browser.BrowserProvider
E/AndroidRuntime(  849):        at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(  849):        at java.lang.Class.newInstance(Class.java:1472)
E/AndroidRuntime(  849):        at android.app.ActivityThread.installProvider(ActivityThread.java:3842)
E/AndroidRuntime(  849):        at android.app.ActivityThread.installContentProviders(ActivityThread.java:3659)
E/AndroidRuntime(  849):        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3618)

出好像是类校验错误,不知道各位有遇到同样问题吗?是如何解决的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值