2017-11-05 1 views
0

공식 Android Studio 튜토리얼을 사용하고 있습니다. 그리고 내 코드와 그 밖의 모든 것이 튜토리얼처럼 가르쳐 주지만, 앱을 보내 자마자 내 앱이 계속 충돌합니다. (https://developer.android.com/training/basics/firstapp/starting-activity.html | 그 곳은 내가 rn). 주요 활동에 대한 내 코드 것은 이것이앱이 계속 충돌합니다 (공식 자습서)

:

package example.myfirstapp; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    /** Called when the user taps the Send button */ 
    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.editText); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 
} 

그리고 디스플레이 메시지 활동

package example.myfirstapp; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class DisplayMessageActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_message); 

     // Get the Intent that started this activity and extract the string 
     Intent intent = getIntent(); 
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 

     // Capture the layout's TextView and set the string as its text 
     TextView textView = findViewById(R.id.textView); 
     textView.setText(message); 
    } 

과 로그 캣의 말씀 그거 ... 내 코드 그거 ...이 잘못

11-05 12 : 36 : 51.627 2265-2265/com.google.android.googlequicksearchbox : 검색 E/SearchServiceStarter : 작업 174가 실패했거나 시간이 초과되었습니다. 클라이언트 9963085251046432 SearchService에서 연결이 끊어졌습니다! java.util.concurrent.CancellationException : 작업이 취소되었습니다. com.google.common.util.concurrent.d.da (SourceFile : 80) com.google.common.util.concurrent.d.get (SourceFile : 62) com.google.common.util. concurrent.cf.o (SourceFile : 2) com.google.common.util.concurrent.ax.m (SourceFile : 50) com.google.common.util.concurrent.az.run (SourceFile : 5) com.google.android.apps.gsa.shared.util.concurrent.a.bf.run에서 (SourceFile의 2)에 android.os android.os.Handler.handleCallback (Handler.java:790)에서 .Handler.dispatchMessage (Handler.java:99) 에서 java.lang.reflect.Method.invoke (기본 방법) 에서 android.app.ActivityThread.main (ActivityThread.java:6494) 에서 android.os.Looper.loop (Looper.java:164) 에서 691,363,210 com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)에서 (RuntimeInit.java:438)

Here's 무엇 지금 Logcat이 말한다

11-07 12 : 24 : 47.927 4134-4134/example.myfirstapp E/AndroidR untime : 치명적인 예외 : 주요 프로세스 : example.myfirstapp, PID : 4134 java.lang.IllegalStateException : 안드로이드를위한 방법을 실행할 수 없습니다 : 온 클릭 를 android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick에서 (AppCompatViewInflater.java:293) android.view.View.performClick (View.java:6294) at android.view.View $ PerformClick.run (View.java:24770) android.os.Handler.handleCallback (Handler.java:790) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (루퍼 .java : 164) android.app.ActivityThread.main (ActivityThread.java:6494) at java.lang.reflect.Method.invoke (기본 메소드) at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) 에 의해 발생 : java.lang.reflect.InvocationTargetException at java .lang.reflect.Method.invoke (네이티브 메소드) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater.java:288) at android.view.View.performClick (View.java:6294)) android.view.View $ PerformClick.run (View.java:24770) at android.os.Handler.handleCallback (Handler.java:790) at android.os.Handler.dispatchMessage (Handler.java:9) 9) android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6494) at java.lang.reflect.Method.invoke (기본 메소드) android.content : com.android.internal.os.ZygoteInit.main에서 com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) (ZygoteInit.java:807)에서 는에 의해 발생. ActivityNotFoundException : 명시 적 활동 클래스 {example.myfirstapp/example.myfirstapp.DisplayMessageActivity};을 (를) 찾을 수 없습니다. 당신의 AndroidManifest.xml에서이 활동을 선언하셨습니까? android.app.Activity.startActivityForResult에서 android.app.Instrumentation.execStartActivity (Instrumentation.java:1616) 에서 android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1933) 에서 (Activity.java:4488) android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:67)에는 android.app.Activity에서 에서 android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult (BaseFragmentActivityApi16.java:54) 에서 . startActivityForResult (Activity.java:4446) ()android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:720) at android.app.Activity.startActivity (Activity.java:4807) at android.app.Activity.startActivity (Activity.java:4775)) android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick에서 java.lang.reflect.Method.invoke (기본 방법) 에서 example.myfirstapp.MainActivity.sendMessage (MainActivity.java:22) (AppCompatViewInflater에서 .java : 288) at android.view.View.performClick (View.java:6294) android.view.View $ PerformClick.run (View.java:24770) at android .os.Handler.handleCallback (Handler.java:790) android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loop (Looper.java:164) android.app에 있습니다. com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) 에서 java.lang.reflect.Method.invoke (기본 방법) 에서 .ActivityThread.main (ActivityThread.java:6494) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

답변

-1

두 가지 활동을 모두 추가했는지 확인하십시오. 명시하지 않거나하지 마라.

TextView textView = (TextView) findViewById (R.id.textView) ...... DisplayMessageActivity에서 이것을 수정하십시오.

public static final String EXTRA_MESSAGE = "MESSAGE"; ...... MainActivity에서 이것을 수정하십시오.

+0

xml 및 매니페스트 파일을 보냅니다. –

-1

"public void sendMessage (View view)"부분에서는 필요없는 View 인수를 제거 할 수 있습니다.

그래서 표시 메시지 액티비티 단지

또한,이 "공개 무효 sendMessage 첨부()"등일 수있다 "텍스트 뷰 findViewById를 텍스트 뷰 = (R.id.textView);" 여기에 다음과 같이 캐스팅을 추가해야합니다.

"TextView textView = (TextView) findViewById (R.id.textView);"

이렇게하면 정상적으로 작동합니다.

0

복사 한 로그캣 오류가 응용 프로그램과 관련이 없습니다. Android Studio에서 Logcat 필터를 사용하여 응용 프로그램 충돌의 실제 원인을 찾을 수 있습니다. 당신을 위해 적어도 두 가지 변종이 다음과 같습니다 로그 캣 패널

  • 유형 "FATAL"키워드에

    1. 선택은 "선택된 응용 프로그램"필터 로그 캣 패널에 상자를 검색 할 수는

    PS : 안드로이드 스튜디오 3.0 WI : 당신이

    PPS (다른 해설자를 들어) 파일의 AndroidManifest.xml에서 활동 중 하나 (또는 ​​둘 다)를 등록 잊었 가능성 새로운 Gradle 플러그인은 더 이상 findViewById의 결과를 캐스팅 할 필요가 없습니다. 업그레이드하고 즐기십시오!

  • +0

    Re : PPS : Studio 또는 Gradle 플러그인이 아닙니다. 그것은 변경된'findViewById()'서명에 대해 감사하기 위해 SDK 26을 컴파일합니다. – laalto

    +0

    @laalto 맞습니다. findViewById에는 이제 일반 서명이 있습니다. 나는 그것이 "컴파일러 설탕"이라고 생각합니다. 가리키는 주셔서 감사합니다. –

    +0

    이봐, Logcat 필터를 적용했는데 그게 내 질문에서 나온거야.하지만 난 아직도 뭘 해야할지 모르겠다 .- – z3nox

    관련 문제