Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Matěj Přerovský:2.12.2019 16:52

Ahoj,
mám problém, že mi aplikace při každém startu spadne. Nechápu co jsem udělal špatně, ale výstup chyby je:

12-01 16:42:39.508 26510-26510/cz.botaniculus.cloner E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cz.botaniculus.cloner, PID: 26510
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cz.botaniculus.cloner/cz.botaniculus.cloner.MainActivity}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2264)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5292)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
        at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:249)
        at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
        at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
        at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:191)
        at cz.botaniculus.cloner.MainActivity.<init>(MainActivity.java:12)
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1215)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2255)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
        at android.app.ActivityThread.access$800(ActivityThread.java:151) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
        at android.os.Handler.dispatchMessage(Handler.java:110) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:5292) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
        at dalvik.system.NativeStart.main(Native Method) 

Díky moc za odpovědi :-)

Odpovědět
2.12.2019 16:52
42
Avatar
Odpovídá na Matěj Přerovský
Matúš Olejník:2.12.2019 17:57

Ahoj, čo tak poslať aj kód? :D

Nahoru Odpovědět
2.12.2019 17:57
/* I am not sure why this works but it fixes the problem */
Avatar
Matěj Přerovský:2.12.2019 18:33

Sry.. ještě to ale nic nedělá, zastavilo mě to...

MainActivity.java

package cz.botaniculus.cloner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText napisEditText = (EditText)findViewById(R.id.napisEditText);
    Button klonovatBtn = (Button) findViewById(R.id.klonovatBtn);
    TextView outputTextView = (TextView) findViewById(R.id.outputTextView);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        napisEditText.setHint("hahahiah");
        klonovatBtn.setText("HEhjegguihFhk");
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    >

    <EditText
        android:id="@+id/napisEditText"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:hint="@string/hint"
        android:layout_centerHorizontal="true"/>

    <Button
        android:id="@+id/klonovatBtn"
        android:layout_centerHorizontal="true"
        android:text="@string/klonovatBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/napisEditText"
        android:layout_margin="20dp"
        />

    <TextView
        android:id="@+id/outputTextView"
        android:layout_height="23dp"
        android:layout_width="325dp"
        android:layout_below="@+id/klonovatBtn"
        android:layout_alignParentBottom="true"
        android:layout_margin="20dp"
        android:layout_centerHorizontal="true"
        android:text="sdhfaskjsg"
        android:textSize="50dp"
        android:textColor="#000000"/>


</RelativeLayout>

Pak mám ještě něco ve strings.xml, ale to by mělo fungovat
Díky :-)

Nahoru Odpovědět
2.12.2019 18:33
42
Avatar
Odpovídá na Matěj Přerovský
Matúš Olejník:2.12.2019 19:09

Najprv musí zbehnúť setContentView a až potom môžeš hľadať view podľa id, takže tú inicializáciu globálnych premenných presuň pod setContentView.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
2.12.2019 19:09
/* I am not sure why this works but it fixes the problem */
Avatar
Odpovídá na Matúš Olejník
Matěj Přerovský:2.12.2019 19:22

No jo vlastně... jsem ale hloupej... ;-)

Díky

Nahoru Odpovědět
2.12.2019 19:22
42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.