2016-06-14 4 views
0

선형 레이아웃을 사용하는 방법을 배우고 있습니다. 새로운 레이아웃 리소스 파일을 만들었고 버튼과 텍스트를 드래그하여 속성을 조정했습니다. API (16) 와 가상 장치에서 실행하려고 응용 프로그램이 충돌 할 때 나는 다음과 같은 솔루션을 시도했지만 작동하지 않았다 :오류가 발생했습니다. java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo

  • 내가 API를 변경 한 15
  • 에 내가 내 응용 프로그램 테마를 변경 한

    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 
    

    내 MainActivity.java :

    Holo.light.DarkActionBar
  • 여기

는 로그 캣입니다

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); 
    } 
} 

그리고 내 linear_experiment.xml Toolbar 또는 android:id="@+id/toolbar"을 가지고 레이아웃에 아무것도 없다

<?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

이 줄은 다음과 같습니다 :'fab.setOnClickListener' 오류가 발생합니다. 즉'fab '이 null이라는 뜻입니다. ID가 맞는지 확인할 수 있습니까? – Vucko

답변

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

.

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

FloatingActionButton 또는 android:id="@+id/fab"을 가지고 레이아웃에 아무것도 없다.

+0

멋진 장소. 아마도 템플릿을 사용하는 레거시 코드 일 것입니다. – Vucko

+0

코드에서 코드를 제거하면됩니까? 확실히 – Shubhendu

+0

. 너는 그것을 사용하지도 않는다. 그것은 자동 생성 템플릿에서 남겨 두었던 것입니다. – Vucko

1

"fab"이라는 버튼이없는 것 같습니다. 그 이름으로 사용하려고하는 단추를이 이름으로 변경해야합니다. android : id = "@ + id/fab"/>

관련 문제