私はAndroid Studio 2.1.2でAndroidアプリケーションを開発しています。外部ライブラリのクラスの一つでAndroid Studio - android.jarとrt.jarの競合
(IBM Bluemix、com.ibm.watson.developer_cloud:java-sdk:3.0.1
の特にワトソンライブラリ)私は、これらの三つのクラスをインポートする必要があります。
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
問題は、(これらの輸入が不可能であるということですシンボルを解決できません)。これは私のシナリオです:私はjavaxのパッケージをインポートしようとすると、私は唯一のandroid.jar(暗号、microedition、ネットにあるものを参照してください
、セキュリティ、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
は、それは私がこの記事に遭遇した同じ問題です:Javax content not accessibleが、今回は問題が輸入を要求し、特定のワトソンライブラリから独立しています。
アプリケーションを動作させるためにクラスを可視にする方法は何ですか?
"rt.jarにあるものは表示されないので、javax.namingパッケージにあるクラスは使用できません。" - つまり、Androidの一部ではないためです。コンパイルする 'android.jar'は、コンパイラを満足させるのに十分な一連のスタブです。そのJARに相当するのは、Androidファームウェアの一部であり、実行時にプロセスにロードされます。どちらのクラスもありません。 Androidと互換性のあるBluemixの別のバージョンがあるかどうかを確認してください。 – CommonsWare
あなたがAndroidライブラリを見つけることができない場合、あなたはいつもあなたのIBMのものを実行するJava Webサーバーを作ることができ、そのAndroidデバイスのメソッドを呼び出すことができます –
助けてくれてありがとう!私は受け入れられた答えにもコメントし、問題の追加説明を書いた。 – Dieghitus