2012-06-09 4 views
0

그래서 첫 번째 앱을 만드는 데 자습서를 사용하고 있습니다. 내 휴대 전화를 에뮬레이터로 사용하고 있습니다 (HTC One X 버전 4.0.3 android) 코딩에 오류가 없지만 어떤 이유로 '불행히도 앱이 중지되었습니다.'라는 메시지가 나타납니다. 2.2 버전에서 4.0.3 버전까지 실행되는 버전을 변경해 보았지만 아무도 도움이되지 않습니다. 여기 (그래서 희망 쉽게 고정 될 간단한 코딩) 내 오류 로그 부호화Eclipse 불행히도 (App)가 중지되었습니다.

에러 로그

06-09 12:37:20.630: D/AndroidRuntime(18583): Shutting down VM 
06-09 12:37:20.650: W/dalvikvm(18583): threadid=1: thread exiting with uncaught exception (group=0x40a65228) 
06-09 12:37:20.660: E/AndroidRuntime(18583): FATAL EXCEPTION: main 
06-09 12:37:20.660: E/AndroidRuntime(18583): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.regoreminder/com.regoreminder.RegoReminderActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class imageview 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread.access$600(ActivityThread.java:139) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.os.Looper.loop(Looper.java:156) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread.main(ActivityThread.java:5005) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at java.lang.reflect.Method.invoke(Method.java:511) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at dalvik.system.NativeStart.main(Native Method) 
06-09 12:37:20.660: E/AndroidRuntime(18583): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class imageview 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.Activity.setContentView(Activity.java:1897) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at com.regoreminder.RegoReminderActivity.onCreate(RegoReminderActivity.java:13) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.Activity.performCreate(Activity.java:4543) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2158) 
06-09 12:37:20.660: E/AndroidRuntime(18583): ... 11 more 
06-09 12:37:20.660: E/AndroidRuntime(18583): Caused by: java.lang.ClassNotFoundException: android.view.imageview 
06-09 12:37:20.660: E/AndroidRuntime(18583): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.createView(LayoutInflater.java:552) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:636) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) 
06-09 12:37:20.660: E/AndroidRuntime(18583): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) 
06-09 12:37:20.660: E/AndroidRuntime(18583): ... 21 more 

JAVA 패키지 com.regoreminder이고;

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 

public class RegoReminderActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
      Thread logoTimer = new Thread(){ 
       public void run(){ 
        try{ 
         int logoTimer = 0; 
         while(logoTimer <5000) { 
          sleep (100); 
          logoTimer = logoTimer +100; 

         } 
         startActivity(new Intent("com.regoreminder.CLEARSCREEN")); 
        } catch (InterruptedException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

        finally{ 
         finish(); 
        } 
       } 


      }; 
      logoTimer.start(); 
    } 

    @Override 
    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
    } 

    @Override 
    protected void onPause() { 
     // TODO Auto-generated method stub 
     super.onPause(); 
    } 

    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 
    } 

    @Override 
    protected void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 
    } 

    @Override 
    protected void onStop() { 
     // TODO Auto-generated method stub 
     super.onStop(); 
    } 

MANIFEST

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.regoreminder" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="8" /> 

    <application 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".RegoReminderActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".Title" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.regoreminder.CLEARSCREEN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

주요

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

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Continue" 
     android:gravity="center"/> 

</LinearLayout> 

SPLASH

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

    <imageview 
     android:src="@drawable/titlebackground" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</LinearLayout> 

사람이 내가 좋지 않을까 그 잘못 한 일에 관해서는 도움을 제공 할 수 있다면! 나는 튜토리얼을 따라 왔기 때문에 무엇이 잘못되었는지 잘 모릅니다. 또한 인터넷에서 모든 답변을 찾아 볼 수 있지만 모든 Apps는 다릅니다.

+0

예외 추적 스택을 보면 마지막 "원인"이 실제 오류 : "java.lang.ClassNotFoundException : android.view.imageview"라는 것을 알 수 있습니다. 다른 사람들은 적절한 이름이 "ImageView"라고 지적했습니다. "imageview"에 대한 코드 + 구성을 검색하고 SPLASH에 있음을 확인하십시오. – Attila

+0

가능한 복제본 [불행히도 MyApp가 중지되었습니다. 어떻게 해결할 수 있습니까?] (http://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this) –

답변

2

imageview ... ImageView이 (경우에주의) 프로그래밍의 세계에

5

변경이

<imageview 
     android:src="@drawable/titlebackground" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

으로

<ImageView 
      android:src="@drawable/titlebackground" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
2

[...] I am using a tutorial to create my first app.

에 오신 것을 환영해야

다른 답변을 통해 문제의 유형과 해결 방법을 알려줍니다. 그러나 당신이 배워야 할 것은 진단하는 방법입니다. 그리고 기본적으로 스택 추적을 읽는 법을 배우게됩니다.

java.lang.RuntimeException: Unable to start activity 
    ComponentInfo{com.regoreminder/com.regoreminder.RegoReminderActivity}: 
    android.view.InflateException: Binary XML file line #7: Error 
    inflating class imageview 
    ... 
Caused by: android.view.InflateException: Binary XML file line #7: 
    Error inflating class imageview 
    ... 
Caused by: java.lang.ClassNotFoundException: android.view.imageview 

    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:552) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:636) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) 

첫 번째 섹션은 기본 예외 스택 트레이스이며, 나머지는 중첩/체인 예외의 시리즈입니다 .. : 당신은 스택 추적을 보면

, 당신은 섹션의 무리를 볼 수 있습니다 하나의 예외가 잡히고 또 다른 예외가 만들어지고 원인으로 첫 번째 예외가 던져집니다.

이제 실제 메시지를 살펴보십시오. 각각은 "imageview"라는 클래스에 대해 이야기하고 있습니다. 실제로 마지막 클래스는 "android.view.imageview"클래스의 정규화 된 이름을 제공하며 예외 이름은 "ClassNotFoundException"입니다. 이 예외는 기본적으로 그것이 의미하는 것을 의미합니다. VM (또는 특히 클래스 로더)은 해당 이름의 클래스를 찾을 수 없습니다. (그러면 추적에서 클래스 로더의 클래스/메소드 이름을 볼 수 있습니다.)

왜?

존재하지 않기 때문에. 또는 정확하게 말하면, 대문자가있는 클래스가 존재하지 않습니다. 모든 Java 및 Android 클래스는 대문자이므로 Java 또는 Android에서는 "imageview"라는 클래스를 볼 수 없습니다.

그렇다면 "이 잘못된 클래스 이름은 어디에서 왔습니까?"라고 자문해야합니다. 리플렉션을 사용하지 않는 한 소스 코드에 포함되지 않습니다. 라이브러리 클래스에 잘못된 클래스 이름을 사용하면 컴파일 오류가 표시되기 때문입니다. 그래서 그것은 당신의 설정이어야합니다. 그리고 빠른 검색은 실제로 ... 그 이름이 어디서 오는 것인지를 보여줍니다.

at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) 

이름은이 레이아웃 내에서 뷰를 만들려고하고, 뷰 이름이 올 것을 의미한다 : 그리고 다시 한 번, 스택 추적에서 확증 증거는 스택 추적의 마지막 두 줄,가 XML 태그로부터.

-1

귀하의 의견은 항상 대문자이어야합니다. 귀하의 경우 "ImageView"

관련 문제