`
cnetwei
  • 浏览: 174449 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

请教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)

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics