2012-06-09 124 views
0

所以我正在使用一个教程来创建我的第一个应用程序。我正在使用我的手机作为模拟器(HTC One X with 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(); 
    } 

清单

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

如果任何人都可以提供一些帮助,给我做了什么错,这将是真棒!我一直在跟着一个教程,所以我不知道什么是错的。也可以通过网络查找答案,但每个应用程序都是不同的。

+0

如果你看看你的异常堆栈跟踪,你会认为最后一个“由...引起”指出真正的错误:“java.lang.ClassNotFoundException:android.view.imageview”。正如其他人指出的,正确的名称是“ImageView”。你搜索你的代码+配置“imageview”,并发现你有SPLASH。 – Attila

+0

[可惜MyApp已停止。我怎样才能解决这个问题?](http://stackoverflow.com/questions/23353173/uncomfort-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”。这个例外基本上意味着它所说的。虚拟机(或更具体的是类加载器)找不到具有该名称的类。 (你会在跟踪中看到类加载器的类/方法名称。)

为什么?

因为它不存在。或者更确切地说,这个大写字母不存在任何阶级。所有的Java和Android类都是大写的,所以你永远不会在Java或Android中看到名为“imageview”的类。

那么你应该问自己“这个不正确的类名是从哪里来的”?它不会出现在您的源代码中(除非您使用反射),因为如果您为库类使用错误的类名称,则会看到编译错误。所以它一定是你的配置。而一个快速搜索揭示......确实......那个名字来自哪里。再次,存在堆栈跟踪验证的证据,在最后2行的堆栈跟踪:

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

的名字意味着它是试图建立一个布局内的视图,该视图名称来来自XML标签。

-1

您的意见应始终采用大写。在你的情况“ImageView”