获取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)
出好像是类校验错误,不知道各位有遇到同样问题吗?是如何解决的?