App schließt ohne EIngabe

  • Antworten:14
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 11

21.08.2017, 00:33:39 via Website

Hallo Leute,

ich habe einen Fett-Protein-Einheiten Rechner erstellt und habe das Problem, das wenn ich keine ANgaben eingebe und auf den Berechnen Button Drücke Die App schließt.

Ich benutzte Java seit 2 Tagen und habe keine Erfahrungen.

Ich benutze Android Studio
Display Auflösungen: large,normal und xlarge.

Denke es liegt an meiner try catch methode

EditText Feld2 = (EditText) findViewById(R.id.faktor);
EditText Feld4 = (EditText) findViewById(R.id.eiweiss);
EditText Feld5 = (EditText) findViewById(R.id.fett);
TextView Feld6 = (TextView) findViewById(R.id.Ergebnis);
TextView Feld7 = (TextView) findViewById(R.id.anzeigekcal);
TextView Feld8 = (TextView) findViewById(R.id.anzeigefpe);
TextView Feld9 = (TextView) findViewById(R.id.anzeigeinsulinfaktorfpe);
TextView Feld10 = (TextView) findViewById(R.id.zeitangabe);
TextView Feld11 = (TextView) findViewById(R.id.erklärung);

    Double Eiweiss = parseDouble(Feld4.getText().toString());
    Double Fett = parseDouble(Feld5.getText().toString());
    Double Faktor = parseDouble(Feld2.getText().toString());

    try {
        Eiweiss = parseDouble(Feld4.getText().toString());
    } catch (NumberFormatException nfe) {
        Toast.makeText(getApplicationContext(), "Bitte alle Werte eingeben", Toast.LENGTH_SHORT).show();
        return;
    }
    try {
        Fett = parseDouble(Feld5.getText().toString());
    } catch (NumberFormatException nfe) {
        Toast.makeText(getApplicationContext(), "Bitte alle Werte eingeben", Toast.LENGTH_SHORT).show();
        return;
    }
    try {
        Faktor = parseDouble(Feld2.getText().toString());
    } catch (NumberFormatException nfe) {
        Toast.makeText(getApplicationContext(), "Bitte alle Werte eingeben", Toast.LENGTH_SHORT).show();
        return;
    }


    //Berechnung

    Double berrechnungkcal = Eiweiss * 4 + Fett*9;
    Double berechnungfpe = berrechnungkcal/100;
    Double berechnunginsulinfaktorfpe = berechnungfpe*Faktor;

    Feld7.setText(String.valueOf(" kcal: " + berrechnungkcal));
    Feld8.setText(String.valueOf(" FPE: " + berechnungfpe));
    Feld9.setText(String.valueOf(" Insulin Faktor * FPE = " + berechnunginsulinfaktorfpe));

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

21.08.2017, 01:23:19 via App

Hallo Spiele Titan,

herzlich willkommen hier im Forum (*)

ohne deinen LogCat zu sehen - immer mit posten - hast du eine NullPointerException.
Entweder du fängst sie im try/Catch mit ab oder fragst per if-else ab oder null oder nicht null.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Spiele Titan

Antworten
  • Forum-Beiträge: 11

21.08.2017, 01:33:22 via Website

Darf leider keine Links posten
image

logcat:

08-20 23:23:52.763 1958-4017/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
08-20 23:23:52.763 1958-4017/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
08-20 23:23:55.196 4020-4020/? W/art: Unexpected CPU variant for X86 using defaults: x86
08-20 23:23:55.202 1585-1616/? I/ActivityManager: Start proc 4020:com.google.android.googlequicksearchbox:search/u0a28 for service com.google.android.googlequicksearchbox/com.google.android.apps.gsa.speech.grammar.GrammarCompilationService
08-20 23:23:55.291 4020-4033/? I/ContextCompilationHandl: Compiling grammar for: en-US, type=CONTACT_DIALING
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: No grammar compilation resources for COMPILER, aborting.
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: Compiling grammar for: en-US, type=HANDS_FREE_COMMANDS
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: No grammar compilation resources for COMPILER, aborting.
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: Compiling grammar for: en-US, type=CONTACT_NAMES
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: No grammar compilation resources for VOICE_ACTIONS_COMPILER, aborting.
08-20 23:23:55.292 4020-4033/? I/ContextCompilationHandl: Compiling grammar for: en-US, type=APP_NAMES
08-20 23:23:55.310 4020-4033/? I/ContextCompilationHandl: No grammar compilation resources for VOICE_ACTIONS_COMPILER, aborting.
08-20 23:23:55.310 4020-4033/? I/ContextCompilationHandl: Compiling grammar for: en-US, type=MUSIC_NAMES
08-20 23:23:55.311 4020-4033/? I/ContextCompilationHandl: No grammar compilation resources for VOICE_ACTIONS_COMPILER, aborting.
08-20 23:23:55.328 4047-4047/? W/art: Unexpected CPU variant for X86 using defaults: x86
08-20 23:23:55.334 1585-1918/? I/ActivityManager: Start proc 4047:android.process.acore/u0a1 for content provider com.android.providers.contacts/.ContactsProvider2
08-20 23:23:55.341 2253-2495/? I/Icing: Usage reports 0 indexed 0 rejected 0 imm upload true
08-20 23:23:55.346 2253-2495/? I/Icing: Usage reports 0 indexed 0 rejected 0 imm upload true
08-20 23:23:55.349 4047-4047/? W/System: ClassLoader referenced unknown path: /system/priv-app/ContactsProvider/lib/x86
08-20 23:23:55.386 4047-4047/? W/System: ClassLoader referenced unknown path: /system/priv-app/BlockedNumberProvider/lib/x86
08-20 23:23:55.398 4047-4047/? W/System: ClassLoader referenced unknown path: /system/app/UserDictionaryProvider/lib/x86
08-20 23:23:55.416 4047-4061/? I/ContactLocale: AddressBook Labels [[en_US]]: […, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Α, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω, …, А, Б, В, Г, Д, Ђ, Е, Є, Ж, З, И, І, Й, Ј, К, Л, Љ, М, Н, Њ, О, П, Р, С, Т, Ћ, У, Ф, Х, Ц, Ч, Џ, Ш, Щ, Ю, Я, …, א, ב, ג, ד, ה, ו, ז, ח, ט, י, כ, ל, מ, נ, ס, ע, פ, צ, ק, ר, ש, ת, …, ا, ب, ت, ث, ج, ح, خ, د, ذ, ر, ز, س, ش, ص, ض, ط, ظ, ع, غ, ف, ق, ك, ل, م, ن, ه, و, ي, …, ก, ข, ฃ, ค, ฅ, ฆ, ง, จ, ฉ, ช, ซ, ฌ, ญ, ฎ, ฏ, ฐ, ฑ, ฒ, ณ, ด, ต, ถ, ท, ธ, น, บ, ป, ผ, ฝ, พ, ฟ, ภ, ม, ย, ร, ฤ, ล, ฦ, ว, ศ, ษ, ส, ห, ฬ, อ, ฮ, …, ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ, …, あ, か, さ, た, な, は, ま, や, ら, わ, #, …]
08-20 23:23:55.440 2253-4046/? W/IcingInternalCorpora: getNumBytesRead when not calculated.
08-20 23:24:11.803 1958-2910/? V/NativeCrypto: Read error: ssl=0xa3558fe0: I/O error during system call, Connection reset by peer
08-20 23:24:11.806 1958-2910/? V/NativeCrypto: SSL shutdown failed: ssl=0xa3558fe0: I/O error during system call, Broken pipe
08-20 23:24:11.814 1585-1595/? D/ConnectivityService: reportNetworkConnectivity(100, false) by 10013
08-20 23:24:11.961 1585-1633/? D/ConnectivityService: NetworkAgentInfo [MOBILE (LTE) - 100] validation passed
08-20 23:24:11.963 1355-1355/? D/WVCdm: Instantiating CDM.
08-20 23:24:11.963 1355-1376/? I/WVCdm: CdmEngine::OpenSession
08-20 23:24:11.964 1355-1376/? I/WVCdm: Level3 Library 4464 Mar 30 2016 13:26:29
08-20 23:24:11.965 1355-1376/? W/WVCdm: Could not load liboemcrypto.so. Falling back to L3. dlopen failed: library "liboemcrypto.so" not found
08-20 23:24:11.966 1355-1376/? I/WVCdm: CdmEngine::QueryKeyControlInfo
08-20 23:24:11.966 1355-2921/? I/WVCdm: CdmEngine::GenerateKeyRequest
08-20 23:24:11.967 1355-2921/? D/WVCdm: PrepareKeyRequest: nonce=762491793
08-20 23:24:12.009 1355-1355/? I/WVCdm: CdmEngine::CloseSession
08-20 23:24:12.147 2735-2735/? W/Binder:2735_2: type=1400 audit(0.0:14): avc: denied { read } for name="/" dev="tmpfs" ino=4097 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:device:s0 tclass=dir permissive=0
08-20 23:24:12.169 2735-2749/? D/EGL_emulation: eglCreateContext: 0x97c8f580: maj 2 min 0 rcv 2
08-20 23:24:12.174 2735-2749/? D/EGL_emulation: eglMakeCurrent: 0x97c8f580: ver 2 0 (tinfo 0x9c6648c0)
08-20 23:24:12.195 2735-2749/? D/EGL_emulation: eglCreateContext: 0x97ce2780: maj 2 min 0 rcv 2
08-20 23:24:12.198 2735-2749/? D/EGL_emulation: eglMakeCurrent: 0x97ce2780: ver 2 0 (tinfo 0x9c6648c0)
08-20 23:24:12.349 1958-2873/? W/Conscrypt: Could not set socket write timeout: null
08-20 23:24:12.407 1958-2873/? W/Conscrypt: Could not set socket write timeout: null
08-20 23:24:12.456 1958-2873/? W/GLSUser: [AppCertManager] IOException while requesting key:
java.io.IOException: Invalid device key response.
at evk.a(:com.google.android.gms:274)
at evk.a(:com.google.android.gms:4238)
at evj.a(:com.google.android.gms:45)
at evd.a(:com.google.android.gms:50)
at evc.a(:com.google.android.gms:104)
at com.google.android.gms.auth.account.be.legacy.AuthCronChimeraService.b(:com.google.android.gms:4049)
at ecm.call(:com.google.android.gms:2041)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at llt.run(:com.google.android.gms:450)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at lqc.run(:com.google.android.gms:17)
at java.lang.Thread.run(Thread.java:761)
08-20 23:24:17.299 1585-1595/? I/ActivityManager: Killing 2538:com.google.android.calendar/u0a33 (adj 906): empty #17
08-20 23:24:17.314 1585-2100/? I/ActivityManager: Killing 1997:android.process.media/u0a11 (adj 906): empty #17
08-20 23:24:17.317 1585-1643/? D/ActivityManager: cleanUpApplicationRecord -- 2538
08-20 23:24:17.320 1585-1918/? D/ActivityManager: cleanUpApplicationRecord -- 1997
08-20 23:25:35.018 1585-1628/? D/WifiNative-HAL: Failing getSupportedFeatureset because HAL isn't started
08-20 23:25:35.019 1585-1601/? E/BluetoothAdapter: Bluetooth binder is null
08-20 23:25:35.020 1585-1601/? E/BatteryStatsService: no controller energy info supplied
08-20 23:25:35.026 1585-1601/? E/KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state (No such file or directory)
08-20 23:25:35.027 1585-1601/? E/KernelUidCpuTimeReader: Failed to read uid_cputime: /proc/uid_cputime/show_uid_stat (No such file or directory)
08-20 23:25:35.028 1585-1601/? E/BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
08-20 23:25:40.639 1585-1598/? I/ProcessStatsService: Prepared write state in 1ms
08-20 23:25:55.217 1585-1598/? I/ActivityManager: Killing 2892:com.google.android.gms:car/u0a13 (adj 904): empty for 1800s
08-20 23:25:55.234 1585-1918/? D/ActivityManager: cleanUpApplicationRecord -- 2892
08-20 23:25:55.264 2253-4130/? I/EventLogChimeraService: Aggregate from 1503269807016 (log), 1503269751879 (data)
08-20 23:25:55.302 1585-1598/? I/ActivityManager: Killing 2608:com.google.android.gm/u0a66 (adj 906): empty for 1800s
08-20 23:25:55.383 1585-1595/? D/ActivityManager: cleanUpApplicationRecord -- 2608
08-20 23:26:00.002 1585-1585/? I/ActivityManager: Killing 3106:com.google.android.music:main/u0a59 (adj 904): empty for 1800s
08-20 23:26:00.003 1585-1585/? I/ActivityManager: Killing 2975:com.google.android.youtube/u0a73 (adj 904): empty for 1803s
08-20 23:26:00.007 1585-1596/? D/ActivityManager: cleanUpApplicationRecord -- 3106
08-20 23:26:00.054 1585-1595/? D/ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ id=7, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ], android.os.BinderProxy@5572a1b)
08-20 23:26:00.054 1585-2090/? D/ActivityManager: cleanUpApplicationRecord -- 2975
08-20 23:26:00.055 2253-2253/? I/CastMediaRouteProvider: in onDiscoveryRequestChanged: request=null
08-20 23:26:00.056 1585-1633/? E/ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=7, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
08-20 23:26:00.061 2253-2495/? W/MdnsClient_Cast: Multicast lock held. Releasing. Subtypes:"233637DE"
08-20 23:26:00.062 2253-2495/? W/MdnsClient: unicast receiver thread is already dead.
08-20 23:26:00.364 2253-4132/? W/PlatformStatsUtil: Could not retrieve Usage & Diagnostics setting. Giving up.

Antworten
  • Forum-Beiträge: 11

21.08.2017, 02:13:48 via Website

Danke für deine schnelle Antwort.

Kannst du mir beim erstellen der if Abfrage helfen?

Wusste jetzt nicht wie ich es aufbauen sollte.

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

21.08.2017, 03:20:13 via App

Der LogCat von der App beim debugging würde reichen, nicht vom ganzen Test Device ;)

if( Feld2.getText().toString() != null) {
// hier deinen Double-Code
}

und so machst du das mit den anderen beiden Feldern auch, aber natürlich das Feld anpassen

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Antworten
  • Forum-Beiträge: 11

21.08.2017, 06:47:04 via Website

ALs ich es versucht habe bekomme ich folgende fehler:

meine Double Eiweiss,Fett und Faktor haben einen Typo

und != ist unexceptet token

Debug:

08-21 04:45:27.155 3770-3770/de.dominic.fperechner E/AndroidRuntime: FATAL EXCEPTION: main
Process: de.dominic.fperechner, PID: 3770
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:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5637) 
at android.view.View$PerformClick.run(View.java:22429) 
at android.os.Handler.handleCallback(Handler.java:751) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6119) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
Caused by: java.lang.NumberFormatException: empty String
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)
at java.lang.Double.parseDouble(Double.java:547)
at de.dominic.fperechner.MainActivity.onClick(MainActivity.java:52)
at java.lang.reflect.Method.invoke(Native Method) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
at android.view.View.performClick(View.java:5637) 
at android.view.View$PerformClick.run(View.java:22429) 
at android.os.Handler.handleCallback(Handler.java:751) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6119) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

Antworten
  • Forum-Beiträge: 11

21.08.2017, 09:14:55 via Website

Ich habe das jetzt ohne else if gemacht

    if( Feld2.getText().toString() != null) {
        Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show();
    }
    if (Feld4.getText().toString()!= null) {
        Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show();
    }
    if (Feld5.getText().toString() != null) {
        Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show();
    }

keine Debug meldungen mehr aber trozdem absturz

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

21.08.2017, 13:24:46 via App

Dann halt noch die empty Anfrage 😉

if( Feld2.getText().toString() != null || Feld2.getText().toString().isEmpty()) { 
    Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show(); } 
if (Feld4.getText().toString()!= null || Feld4.getText().toString().isEmpty()) {
    Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show(); } 
if (Feld5.getText().toString() != null || Feld5.getText().toString().isEmpty()) { 
    Toast.makeText(getApplicationContext(), "bitte", Toast.LENGTH_SHORT).show(); }

— geändert am 21.08.2017, 13:26:26

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Spiele Titan

Antworten
  • Forum-Beiträge: 11

21.08.2017, 15:11:02 via Website

Danke

Jetzt hat alles geklappt.

Musste nich die Percussion für Mikrofon ausmachen aber ist ja eine Kleinigkeit

Antworten
  • Forum-Beiträge: 11

21.08.2017, 23:04:12 via Website

Hey, muss dich leider nochmal stören.

ich wollte einen TextChangedListener einbauen.
Mit dem TextChangedListener soll folgendes passieren:

wenn im Feld2 die Zahl geändert wird soll das Ergebnis auch geändert werden.

Antworten
  • Forum-Beiträge: 11

22.08.2017, 04:25:32 via Website

Das Problem ist, dass das Ergebnis erst angezeigt wird wenn man auf den Button klickt.

Gibt es dafür eine Möglichkeit oder eine Methode?

Danke im voraus

— geändert am 22.08.2017, 04:28:14

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

22.08.2017, 06:58:14 via App

Klar, es gibt drei Methoden im TextWatcher

  addTextChangedListener(new TextWatcher (){
 //  beforeTextChanged
 //  afterTextChanged
@Override public void          
 onTextChanged(CharSequence s, int start, int before, int count) {

// hier ist dein Einstieg
}
})

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Antworten
  • Forum-Beiträge: 11

22.08.2017, 08:31:20 via Website

Genau aber wie sagen ich das wenn ich in den Eingabe Felder etwas anderes eingebe. Bekomme erst eine Ausgabe wenn ich auf dem Button klicke. Wollte aber das wenn ich die Eingabe Felder ändern das sich automatisch das Ergebnis ändert.

— geändert am 22.08.2017, 10:06:27

Antworten

Empfohlene Artikel