2016-08-10 3 views
0

첫 번째 Android 앱을 만들고 있습니다. Android Studio에서 코드에 오류가 표시되지 않습니다. 그러나 에뮬레이터에서 앱을 실행하자마자 앱이 계속 충돌합니다. 에뮬레이터 용으로 내장 Nexus 5X API 23을 사용하고 있습니다. 도와주세요. 감사합니다.에뮬레이터에서 Android 앱이 계속 충돌합니다.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout  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" 
android:fitsSystemWindows="true" 
tools:context="com.example.admin.coursebrowser.MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

<include layout="@layout/content_main" /> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@android:drawable/ic_dialog_email" /> 

</android.support.design.widget.CoordinatorLayout> 
: 여기
package com.example.admin.coursebrowser; 

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.widget.RelativeLayout; 
import android.widget.Button; 
import android.graphics.Color; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    RelativeLayout myLayout= new RelativeLayout(this); 
    myLayout.setBackgroundColor(Color.CYAN); 
    Button redButton= new Button(this); 
    redButton.setText("Click Me"); 
    redButton.setBackgroundColor(Color.RED); 
    myLayout.addView(redButton); 
    setContentView(myLayout); 

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

} 

가 activity_main.xml 파일입니다

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.admin.coursebrowser"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
여기

내 MainActivity.java 파일입니다 : 여기

내 매니페스트 파일입니다

여기 있습니다. 그는 로그 캣 : 당신은 FloatingActionButton가 커녕 한 당신의 RelativeLayout에, R.id.fab 이름없는

08-10 15:09:23.291 3442-3442/com.example.admin.coursebrowser E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.admin.coursebrowser, PID: 3442 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admin.coursebrowser/com.example.admin.coursebrowser.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5417) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
     at com.example.admin.coursebrowser.MainActivity.onCreate(MainActivity.java:30) 
     at android.app.Activity.performCreate(Activity.java:6237) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5417) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

답변

1
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.FloatingActionButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.admin.coursebrowser.MainActivity.onCreate(MainActivity.java:30) 

. Java 코드에서 activity_main.xml 파일을 사용하고 있지 않습니다.

+0

에 이것을 setContentView(myLayout); 변화를 설정하는 나는 activity_main.xml 파일을 사용하지 않습니다. JAVA로 레이아웃을 만들고 싶습니다. Android Studio에 있기 때문에 XML 파일을 방금 게시했습니다. FloatingActionButton 오류를 수정하려면 어떻게해야합니까? – kudesiaji

+0

@kudesiaji : 그럼'FloatingActionButton'을 참조하고있는 Java 코드를 제거하십시오. – CommonsWare

+0

이 작업을했습니다. 감사합니다! – kudesiaji

0

당신은 setContentView(R.layout.activity_main);

관련 문제