2012-06-09 6 views
0

Так что я использую учебник для создания своего первого приложения. Я использую свой телефон в качестве эмулятора (HTC One X с версией 4.0.3 android) У меня нет ошибок в моей кодировке, но по какой-то причине я получаю «приложение для приложений, которое было« к сожалению »остановлено». Я попытался изменить версию, с которой она работает, между 2.2 и 4.0.3, но ни одна из них не помогает. Вот мой журнал регистрации ошибок и кодирования (простое кодирование так, мы надеемся быть легко фиксированы)Eclipse К сожалению (приложение) остановлено

ERROR LOG

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

Если вы посмотрите на свою трассировку стека исключений, вы увидите, что в последнем «Caused by» говорится о реальной ошибке: «java.lang.ClassNotFoundException: android.view.imageview». Как отметили другие, собственное имя - «ImageView». Вы просматриваете свой код + конфигурацию для «imageview» и обнаруживаете, что у вас есть в SPLASH. – Attila

+0

Возможный дубликат [К сожалению, MyApp остановлен. Как я могу это решить?] (Http://stackoverflow.com/questions/23353173/unappro-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) 

Первый раздел является основным StackTrace исключение, а остальные для серии вложенными/прикованных исключения .. где было исключено одно исключение, а другое было создано и брошено первым в качестве причины.

Теперь посмотрите фактические сообщения. Каждый из них говорит о классе под названием «imageview». В самом деле, последнее дает полное имя класса «android.view.imageview» ... и говорит, что исключением является «ClassNotFoundException». Это исключение в основном означает то, что он говорит. VM (или, более конкретно, загрузчик классов) не может найти класс с таким именем. (И вы увидите имена классов/методов загрузчиков классов в трассировке.)

Почему?

Потому что его не существует. Или, если быть точным, ни один класс не существует с этой капитализацией. Все классы Java и Android капитализируются, поэтому вы никогда не увидите класс с именем «imageview» на Java или Android.

Итак, вы должны спросить себя, «Откуда у этого неправильного имени класса»? Это не будет в вашем исходном коде (если вы не используете отражение), потому что вы увидите ошибку компиляции, если вы используете неправильное имя класса для класса библиотеки. Так что это должны быть ваши конфиги. И быстрый поиск показывает ... действительно ... что то, откуда это название. И еще раз, есть подтверждающие доказательства в трассировке стека, в последние 2 строки трассировки стека:

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

Названия предполагает он пытается создать представление внутри макета, и что имя вида приходит из тега XML.

-1

Ваши взгляды всегда должны быть в верхнем корпусе. В вашем случае «ImageView»

Смежные вопросы