我有一个只能通过某一行电话访问的JAR。
有没有办法有条件地调用引用该JAR的代码,这样当其他手机没有那个时我就不会出现链接错误?
E.G。
if(JARisAvailable)
functionFromJAR();
else
functionNotFromJAR();
答案 0 :(得分: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。