Python týden Python týden
Další šance dokončit svůj projekt a získat ceny v hodnotě 10.000 Kč! Pokračování úspěšné letní soutěže - ITnetwork winter
Avatar
Matěj Přerovský:2. prosince 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. prosince 16:52
42
Avatar
Odpovídá na Matěj Přerovský
Matúš Olejník:2. prosince 17:57

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

Nahoru Odpovědět
2. prosince 17:57
/* I am not sure why this works but it fixes the problem */
Avatar
Matěj Přerovský:2. prosince 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. prosince 18:33
42
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Matěj Přerovský
Matúš Olejník:2. prosince 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í
+1 bodů
Řešení problému
Nahoru Odpovědět
2. prosince 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. prosince 19:22

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

Díky

Nahoru Odpovědět
2. prosince 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.