Android Studio - android.jar 和 rt.jar 冲突
Android Studio - android.jar and rt.jar conflicts
我正在使用 Android Studio 2.1.2 开发 Android 应用程序。
在外部库的类之一(特别是IBM Bluemix的Watson库,com.ibm.watson.developer_cloud:java-sdk:3.0.1
)我需要导入这三个类:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
问题是无法进行这些输入(无法解析符号)。这是我的场景:
android.jar
rt.jar
当我尝试导入 javax 包时,我只看到 android.jar(加密, 微型版, 网络, 安全, sql, xml)。 我没有看到 rt.jar 中的那些,所以我不能使用 类例如,出现在 javax.naming 包中。
我试过用这种方式显式添加依赖
compile files ('C:/Program Files/Java/jdk1.8.0_77/jre/lib/rt.jar')
但我认为这是不正确的,事实上它编译但我不能运行在设备上因为这个错误:
Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_77\bin\java.exe'' finished with non-zero exit value 1
这与我在 post 中遇到的问题相同:Javax content not accessible,但这次问题与请求导入的特定 Watson 库无关。
如何使 类 可见以让应用程序正常工作?
您不能将 rt.jar
与 Android 应用程序一起使用(并且与 android.jar
有点重叠)。那是桌面 JRE 的运行时库,而不是 Android。请参阅 the Android API reference 以获取可用软件包列表(您会注意到 javax.naming
不是其中之一。
显然 IBM 框架不 Android 兼容。
我之前的评估是不准确的,因为 README 明确指出它是:
The library supports Android 2.3 and above. For Java, the minimum requirement is 1.7.
It depends on OkHttp and gson.
但是,我怀疑该问题与错误配置的凭据有关(请参阅 here)导致库随后尝试 JNDI 查找作为后备(肯定 不是 支持 Android).
我正在使用 Android Studio 2.1.2 开发 Android 应用程序。
在外部库的类之一(特别是IBM Bluemix的Watson库,com.ibm.watson.developer_cloud:java-sdk:3.0.1
)我需要导入这三个类:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
问题是无法进行这些输入(无法解析符号)。这是我的场景:
android.jar
rt.jar
当我尝试导入 javax 包时,我只看到 android.jar(加密, 微型版, 网络, 安全, sql, xml)。 我没有看到 rt.jar 中的那些,所以我不能使用 类例如,出现在 javax.naming 包中。
我试过用这种方式显式添加依赖
compile files ('C:/Program Files/Java/jdk1.8.0_77/jre/lib/rt.jar')
但我认为这是不正确的,事实上它编译但我不能运行在设备上因为这个错误:
Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_77\bin\java.exe'' finished with non-zero exit value 1
这与我在 post 中遇到的问题相同:Javax content not accessible,但这次问题与请求导入的特定 Watson 库无关。
如何使 类 可见以让应用程序正常工作?
您不能将 rt.jar
与 Android 应用程序一起使用(并且与 android.jar
有点重叠)。那是桌面 JRE 的运行时库,而不是 Android。请参阅 the Android API reference 以获取可用软件包列表(您会注意到 javax.naming
不是其中之一。
显然 IBM 框架不 Android 兼容。
我之前的评估是不准确的,因为 README 明确指出它是:
The library supports Android 2.3 and above. For Java, the minimum requirement is 1.7. It depends on OkHttp and gson.
但是,我怀疑该问题与错误配置的凭据有关(请参阅 here)导致库随后尝试 JNDI 查找作为后备(肯定 不是 支持 Android).