2016-06-14 7 views
0

Ich lerne, wie man lineare Layouts verwendet. Ich habe eine neue Layout-Ressourcendatei erstellt, die Schaltflächen und den Text gezogen, ihre Eigenschaften angepasst. Die App stürzt ab, wenn andere auf dem virtuellen Gerät mit API läuft 16 habe ich versucht, die folgenden Lösungen aber nicht funktioniert:Fehler erhalten java.lang.RuntimeException: Aktivität konnte nicht gestartet werden ComponentInfo

  • ich die API 15
  • geändert habe ich habe meine app Thema geändert Holo.light.DarkActionBar

ist die logcat:

06-14 20:56:20.692 1281-1281/? D/dalvikvm: Late-enabling CheckJNI 
06-14 20:56:20.728 1281-1287/? D/dalvikvm: Debugger has detached; object registry had 1 entries 
06-14 20:56:20.796 1281-1281/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;) 
06-14 20:56:20.800 1281-1281/? I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested 
06-14 20:56:20.800 1281-1281/? W/dalvikvm: VFY: unable to resolve interface method 18815: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z 
06-14 20:56:20.800 1281-1281/? D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
06-14 20:56:20.800 1281-1281/? I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode 
06-14 20:56:20.800 1281-1281/? W/dalvikvm: VFY: unable to resolve interface method 18819: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; 
06-14 20:56:20.800 1281-1281/? D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 
06-14 20:56:20.816 1281-1281/? D/AndroidRuntime: Shutting down VM 
06-14 20:56:20.816 1281-1281/? W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa6253288) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime: FATAL EXCEPTION: main 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shubhendu.linearlayoutexperiments/com.example.shubhendu.linearlayoutexperiments.MainActivity}: java.lang.NullPointerException 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:137) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:4745) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:511) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime: Caused by: java.lang.NullPointerException 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at com.example.shubhendu.linearlayoutexperiments.MainActivity.onCreate(MainActivity.java:22) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.Activity.performCreate(Activity.java:5008) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.access$600(ActivityThread.java:130)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:99)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:137)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:4745)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:511)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  
06-14 20:56:20.816 1281-1281/? E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method)  
06-14 20:56:22.640 1281-1281/? I/Process: Sending signal. PID: 1281 SIG: 9 

Mein MainActivity.java:

package com.example.shubhendu.linearlayoutexperiments; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.linear_experiment); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

Und mein linear_experiment.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_weight=".5" 
     android:gravity="center_horizontal"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button2" /> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_weight="0.5"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Text" 
      android:id="@+id/textView" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="20dp" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Text" 
      android:id="@+id/textView2" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="20dp" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Text" 
      android:id="@+id/textView3" 
      android:layout_gravity="center_horizontal" 
      android:layout_marginTop="20dp" /> 
    </LinearLayout> 
</LinearLayout> 
+0

Scheint wie diese Zeile: 'fab.setOnClickListener' verursacht den Fehler. Was bedeutet, dass das "fab" null ist. Können Sie überprüfen, ob die ID korrekt ist? – Vucko

Antwort

3
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 

Es gibt nichts in Ihrem Layout ist, dass ein Toolbar oder android:id="@+id/toolbar" hat.

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 

Es gibt nichts in Ihrem Layout, das ein FloatingActionButton ist oder android:id="@+id/fab".

+0

schöner Ort. Es ist wahrscheinlich Legacy-Code aus der Verwendung einer Vorlage. – Vucko

+0

Also entferne ich es einfach aus dem Code? – Shubhendu

+0

Sicher. Du benutzt es nicht einmal. Es ist das, was Sie von der automatisch generierten Vorlage übrig hatten. – Vucko

1

Es sieht so aus, als ob Sie keine Schaltfläche namens "fab" haben. Sie müssen die Schaltfläche, die Sie mit diesem Namen verwenden möchten, ändern. android: id = "@ + id/fab" />

Verwandte Themen