0

Я разрабатываю приложение метронома. Я делаю ту часть, где я позволяю людям выбирать темп. И выглядит примерно так:Почему возникает событие InflateException (вызванное ClassNotFoundException)?

Tempo: <-- TextView 
     90  <-- EditText 
    --O------ <-- SeekBar 

Но потом я передумал и изменил EditText к TextView. Это часть xml:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:gravity="center_horizontal"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/all_text_size" 
     android:text="@string/tempo_text"/> 
    <TexView //This used to be an EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/tempo_text"/> 
    <SeekBar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:max="270" 
     android:id="@+id/tempo_seek"/> 
</LinearLayout> 

Перед изменением он отлично работает. Но после изменений, tempo_textTextView есть предупреждение, что говорит:

Элемент TextView не допускается здесь

Я смущен, если TextView над ним, допускается, почему не это разрешено? Поэтому я проигнорировал предупреждение и подумал, что это всего лишь одна из ошибок Android Studio. Когда я запустить приложение, исключение произошло:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.metronomewithvoice/com.themetronome.MainActivity}: android.view.InflateException: Binary XML file line #25: Error inflating class TexView 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) 
     at android.app.ActivityThread.access$600(ActivityThread.java:150) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:213) 
     at android.app.ActivityThread.main(ActivityThread.java:5225) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:525) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
     at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #25: Error inflating class TexView 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274) 
     at android.app.Activity.setContentView(Activity.java:1895) 
     at com.themetronome.MainActivity.onCreate(MainActivity.java:15) 
     at android.app.Activity.performCreate(Activity.java:5133) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2230) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) 
            at android.app.ActivityThread.access$600(ActivityThread.java:150) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:213) 
            at android.app.ActivityThread.main(ActivityThread.java:5225) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:525) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
            at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.TexView" on path: DexPathList[[zip file "/data/app/com.metronomewithvoice-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.metronomewithvoice-2, /vendor/lib, /system/lib]] 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:559) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652) 
     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274) 
            at android.app.Activity.setContentView(Activity.java:1895) 
            at com.themetronome.MainActivity.onCreate(MainActivity.java:15) 
            at android.app.Activity.performCreate(Activity.java:5133) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2230) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316) 
            at android.app.ActivityThread.access$600(ActivityThread.java:150) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:213) 
            at android.app.ActivityThread.main(ActivityThread.java:5225) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:525) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
            at dalvik.system.NativeStart.main(Native Method) 

И я уверен, что нет никаких проблем с моей Java кода, потому что исключение произошло на setContentView линии (MainActivity.java линии 15).

Скажите, пожалуйста, почему это исключение произошло и как его исправить.

ответ

1

У вас есть опечатка TexView должен быть TextView

+0

Oh! Я был глуп! – Sweeper

+0

Но разве это не должно приводить к ошибке компилятора? – Sweeper

+0

нет нет. Класс создается через Reflection a runtime. а не время компиляции – Blackbelt

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

  • Нет связанных вопросов^_^