我正在使用Android Studio 2.1.2开发Android应用程序。
在外部库的一个类中(特别是IBM Bluemix的Watson库,J
)我需要导入这三个类:
com.ibm.watson.developer_cloud:java-sdk:3.0.1
问题是这些导入是不可能的(无法解析符号)。这是我的情景:
当我尝试导入javax包时,我只看到 android.jar 中的那些(加密,微创,网络,安全,sql,xml) )。 我没有看到 rt.jar 中的那些,所以我无法使用 javax.naming 中的类包,例如。
我试图以这种方式显式添加依赖
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
但我认为这是不正确的,事实上它编译但由于这个错误我无法在设备上运行:
compile files ('C:/Program Files/Java/jdk1.8.0_77/jre/lib/rt.jar')
这是我在这篇文章中遇到的同样问题:Javax content not accessible,但这次问题独立于请求导入的特定Watson Library。
让类可以让应用程序工作的方法是什么?
答案 0 :(得分:3)
您无法将rt.jar
与Android应用程序一起使用(并且与android.jar
有些重叠)。这是桌面JRE的运行时库,而不是Android。有关可用软件包的列表,请参阅the Android API reference(您会注意到javax.naming
不是其中之一。
显然,IBM框架不兼容Android。
我之前的评估是不准确的,因为README清楚地表明它是:
该库支持Android 2.3及更高版本。对于Java,最低要求是1.7。 这取决于OkHttp和gson。
但是,我怀疑这个问题与错误配置的凭据(请参阅here)有关,导致库然后尝试JNDI查找作为回退(肯定不支持 )。