I generate RSA encryption keys and write them to a file like this:

try { final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(1024, new SecureRandom()); final KeyPair key = keyGen.generateKeyPair(); File privateKeyFile = new File(md5(nickname.getText().toString()) + "_private_key"); File publicKeyFile = new File(md5(nickname.getText().toString()) + "_public_key"); if (privateKeyFile.getParentFile() != null) { privateKeyFile.getParentFile().mkdirs(); } privateKeyFile.createNewFile(); if (publicKeyFile.getParentFile() != null) { publicKeyFile.getParentFile().mkdirs(); } publicKeyFile.createNewFile(); BufferedWriter pubOut = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(publicKeyFile))); pubOut.write(byte2Hex(key.getPublic().getEncoded())); pubOut.flush(); pubOut.close(); BufferedWriter privOut = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(privateKeyFile))); privOut.write(byte2Hex(key.getPrivate().getEncoded())); privOut.flush(); privOut.close(); } catch (Exception e) { e.printStackTrace(); } 

The program jumps to Exception on this line:

 privateKeyFile.createNewFile(); 

What have I missed and am doing wrong? Trying to do as indicated in this example.

Mistake:

 08-03 15:30:51.468 1869-1924/com.example.jack.myapplication E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe980a400 08-03 15:35:29.259 2653-6152/com.example.jack.myapplication E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe9807140 08-03 15:35:32.029 2653-2653/com.example.jack.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.jack.myapplication, PID: 2653 java.lang.IllegalStateException: Could not execute method for android:onClick at android.view.View$DeclaredOnClickListener.onClick(View.java:4452) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4447) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at com.example.jack.myapplication.register.onClick_register(register.java:188) at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4447) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
  • Forgot to add an error message, now added - Nikola Krivosheya
  • what's in the "register.java:188" line? - ermak0ff

0