0

现在我已经构建了一个名为 telephony_DA 的第三方 jar。而且我已经可以在应用程序级别使用这个 telephony_DA 库。(修改 AndroidManifest.xml 并将权限添加到 /etc/permissions)

我的问题是我在
“com.android.server”包中编写了一个名为 TelephonyRegistry_DA.java 的新服务,并使用了 telephony_DA 库中的类。注意到 Android.mk 中的 telephony_DA 库后,我可以成功构建服务库。但是在运行时它出现了崩溃,原因是

"java.lang.NoClassDefFoundError: com.android.server.TelephonyRegistry_DA"

我试图找出问题所在,然后我发现了一些东西。一旦我从 TelephonyRegistry_DA.java 中的 telephony_DA 库中删除了类,那么在运行时从 TelephonyRegistry_DA.java 创建和添加服务就没有问题了。似乎 systemserver 不知道与 telephony_DA 库的链接。

那么如何将第三方 jar 添加到 systemserver.java 中呢?

谢谢。

4

1 回答 1

0

在应用程序级别,您可以从 manifest.xml 中 inidcat 3rd 方库。但是在来自系统服务器的服务中,您应该将第 3 方库添加到默认链接路径中。所以请修改(例如:telephony_DA.jar)init.rc 如下。

导出 BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/ system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/telephony_DA.jar

于 2012-07-17T01:59:14.943 回答