Два возможных ответа.
Если вы хотите идти по пути, попробуйте это, чтобы решить NoClassDefFoundError
. android eclipse обновлен, и теперь приложение вылетает при попытке запустить
Вы также можете использовать JSch.У меня это работает надежно на Android самостоятельно. Принудительное закрытие RSA-шифрования перед генерацией открытых / закрытых ключей
Редактировать: Вот пример использования JSch для генерации пар ключей RSA-типа.Я думаю это PKCS # 1, но я недостаточно знаком со стандартом. соответствующий javadoc - это то, от чего я ухожу.
/**
* Load or generate a RSA keypair to use as a client for the given JSch.
*/
public boolean registerKeyPair(JSch jSch) {
new File(getRootFolder().getAbsolutePath() + "/.ssh").mkdirs();
File privateKey = new File(getRootFolder().getAbsolutePath() + "/.ssh/id_rsa");
File publicKey = new File(getRootFolder().getAbsolutePath() + "/.ssh/id_rsa.pub");
if (!privateKey.exists() || !publicKey.exists()) {
try {
KeyPair keyPair = KeyPair.genKeyPair(jSch, KeyPair.RSA);
keyPair.writePrivateKey(privateKey.getAbsolutePath());
keyPair.writePublicKey(publicKey.getAbsolutePath(), "Machine Shop");
return true;
} catch (JSchException e) {
Log.e("genKeyPair(RSA)", Log.getStackTraceString(e));
} catch (FileNotFoundException e) {
Log.e("genKeyPair(RSA)", Log.getStackTraceString(e));
} catch (IOException e) {
Log.e("genKeyPair(RSA)", Log.getStackTraceString(e));
}
return false;
}
try {
jSch.addIdentity(privateKey.getAbsolutePath());
return true;
} catch (JSchException e) {
Log.w("jSch.addIdentity", Log.getStackTraceString(e));
return false;
}
}
Редактировать: Предполагая Eclipse.Включите файл JSch jar в путь сборки, желательно в качестве локального jar (скажем, в папке lib).Обязательно проверьте его на вкладке «Заказ и экспорт».
Теперь обновите ваш проект.