Ich verwende SimpleDateFormat auf Android. Ich habe es mit API 24 getestet und es hat funktioniert. Wenn ich versuche, es auf API 16 zu verwenden, stürzt es ab. Ich habe das Internet durchsucht und ich fand Leute, die sagen, dass es wegen einer falschen Importanweisung (import android.icu.text.SimpleDateFormat
) sein könnte, aber ich verwende bereits import java.text.SimpleDateFormat
.Android: SimpleDateFormat gibt API Fehler
Mein Code (stürzt auf onclickButton):
import java.text.SimpleDateFormat;
public class MainActivity extends AppCompatActivity {
SimpleDateFormat sdf;
String date;
public void onclickButton (View view) {
Calendar c = Calendar.getInstance();
sdf = new SimpleDateFormat("dd MM YYYY");
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
date = sdf.format(c.getTime());
}
...
}
Stacktrace:
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xb111d228)
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Unknown pattern character 'Y'
at java.text.SimpleDateFormat.validateFormat(SimpleDateFormat.java:268)
at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:323)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:369)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:253)
at com.jonathan_tilly.adventskalender.MainActivity.onclickButton(MainActivity.java:34)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16966)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Jede Hilfe ist willkommen!
Zeigen Sie den Stacktrace. Außerdem glaube ich nicht, dass Sie Variablen außerhalb einer Klasse deklarieren können. – nbokmans
Sie haben Recht, ich habe es bearbeitet. Ich habe nur den Fehler gemacht, als ich den Code kopiert habe. Ich habe auch das Stacktrace – nox
Versuchen Sie mit 'TT MM JJJJ' –