1

我有一个只能由特定电话线路访问的 JAR。

有没有办法有条件地调用引用该 JAR 的代码,以便在其他手机没有链接时不会出现链接错误?

例如

if(JARisAvailable)
    functionFromJAR();
else
    functionNotFromJAR();
4

1 回答 1

0

你的意思不是JAR。JAR 都在您的 APK 中提供。您指的是根据设备具有的特定 API 级别在框架内可能可用或不可用的包。

当然,您可以这样做,但您需要以特定的方式进行。您需要将所有使用可能不可用的 API 的代码放入一个单独的类(或多个类)中。您需要检查设备是否支持您要使用的 API。如果是这样,您可以创建单独类(或多个类)的实例并使用它们。

这里的秘密是虚拟机(VM)仅在加载类时验证类(即:检查它们使用的所有类是否存在以及它们调用的所有方法是否存在等),并且VM仅在加载类时才加载它首先被使用(新实例创建或引用的静态成员或调用的静态方法)。只要您避免加载使用不存在的类或方法的类,您就不会有问题。

有关示例,请参见http://android-developers.blogspot.de/2010/07/how-to-have-your-cupcake-and-eat-it-too.html 。

于 2013-11-14T23:23:59.840 回答