An external jar file when used with normal Java application works fine, but when I use the same .jar file in android after putting in the /libs folder throws exceptions. The jar basically does encryption of values provided in a Map. The error log is as follows:
12-24 20:36:45.441: E/EncryptionUtils(31893): Could not read PublicKey 12-24 20:36:45.441: E/EncryptionUtils(31893): java.security.NoSuchProviderException: SunRsaSign 12-24 20:36:45.441: E/EncryptionUtils(31893): at >java.security.KeyFactory.getInstance(KeyFactory.java:108) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >in.verse.ipayy.crypto.EncryptionUtils.getPublicKey(Unknown Source) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >in.verse.ipayy.crypto.CryptoUtils.loadGlobalPublicKey(Unknown Source) 12-24 20:36:45.441: E/EncryptionUtils(31893): at in.verse.ipayy.crypto.CryptoUtils.(Unknown >Source) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >com.example.testencryption.Encryption.encrypt(Encryption.java:30) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >com.example.testencryption.MainActivity.onCreate(MainActivity.java:16) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.Activity.performCreate(Activity.java:5138) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2228) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2314) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.ActivityThread.access$600(ActivityThread.java:144) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.os.Handler.dispatchMessage(Handler.java:99) 12-24 20:36:45.441: E/EncryptionUtils(31893): at android.os.Looper.loop(Looper.java:150) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >android.app.ActivityThread.main(ActivityThread.java:5147) 12-24 20:36:45.441: E/EncryptionUtils(31893): at java.lang.reflect.Method.invokeNative(Native >Method) 12-24 20:36:45.441: E/EncryptionUtils(31893): at java.lang.reflect.Method.invoke(Method.java:511) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 12-24 20:36:45.441: E/EncryptionUtils(31893): at >com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 12-24 20:36:45.441: E/EncryptionUtils(31893): at dalvik.system.NativeStart.main(Native Method) 12-24 20:36:45.451: E/AndroidRuntime(31893): FATAL EXCEPTION: main 12-24 20:36:45.451: E/AndroidRuntime(31893): java.lang.ExceptionInInitializerError 12-24 20:36:45.451: E/AndroidRuntime(31893): at >com.example.testencryption.Encryption.encrypt(Encryption.java:30) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >com.example.testencryption.MainActivity.onCreate(MainActivity.java:16) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.Activity.performCreate(Activity.java:5138) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2228) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2314) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.ActivityThread.access$600(ActivityThread.java:144) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.os.Handler.dispatchMessage(Handler.java:99) 12-24 20:36:45.451: E/AndroidRuntime(31893): at android.os.Looper.loop(Looper.java:150) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >android.app.ActivityThread.main(ActivityThread.java:5147) 12-24 20:36:45.451: E/AndroidRuntime(31893): at java.lang.reflect.Method.invokeNative(Native >Method) 12-24 20:36:45.451: E/AndroidRuntime(31893): at java.lang.reflect.Method.invoke(Method.java:511) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 12-24 20:36:45.451: E/AndroidRuntime(31893): at >com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 12-24 20:36:45.451: E/AndroidRuntime(31893): at dalvik.system.NativeStart.main(Native Method) 12-24 20:36:45.451: E/AndroidRuntime(31893): Caused by: java.lang.NullPointerException 12-24 20:36:45.451: E/AndroidRuntime(31893): at >in.verse.ipayy.crypto.CryptoUtils.loadGlobalPublicKey(Unknown Source) 12-24 20:36:45.451: E/AndroidRuntime(31893): at in.verse.ipayy.crypto.CryptoUtils.(Unknown >Source) 12-24 20:36:45.451: E/AndroidRuntime(31893): ... 16 more
Please point out where am I going wrong...