2013-11-22 1 views
1

Запуск небольшой проблемы с инфляцией при попытке реализовать микрофон с открытым исходным кодом в моем приложении. Поэтому я пытаюсь понять, как это исправить. Еще один набор глаз, смотрящих на это, был бы хорош. Так вот мы идем:android.view.InflateException: двоичная строка XML-файла # 94: ошибка раздувания класса

Вот класс, что это отношение к:

package styckz.com.clearpicturemode; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.drawable.Drawable; 
import android.util.AttributeSet; 
import android.widget.ImageView; 

public class CompassView extends ImageView { 
private float mDirection; 
private Drawable compass; 

public CompassView(Context context) { 
    super(context); 
    mDirection = 0.0f; 
    compass = null; 
} 

public CompassView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    mDirection = 0.0f; 
    compass = null; 
} 

public CompassView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    mDirection = 0.0f; 
    compass = null; 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    if (compass == null) { 
     compass = getDrawable(); 
     compass.setBounds(0, 0, getWidth(), getHeight()); 
    } 

    canvas.save(); 
    canvas.rotate(mDirection, getWidth()/2, getHeight()/2); 
    compass.draw(canvas); 
    canvas.restore(); 
} 

public void updateDirection(float direction) { 
    mDirection = direction; 
    invalidate(); 
} 

} 

Так вот мы ... Я попытался поворотом, что класс выше от общественности к статическому электричеству без толка согласно запросу в другом потоке, и это не сработало ... Может, я что-то делаю неправильно? Все, что было сделано, это сделать заголовок класса красным под ним и утверждать, что статический признак недействителен.

Любые идеи?

Вот Layout XML файл:

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

<FrameLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background" > 

    <LinearLayout 
     android:id="@+id/view_compass" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/background_light" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:orientation="vertical" > 

      <FrameLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/prompt" > 

       <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        android:layout_marginTop="70dip" 
        android:orientation="horizontal" > 

        <LinearLayout 
         android:id="@+id/layout_direction" 
         android:layout_width="0dip" 
         android:layout_height="wrap_content" 
         android:layout_weight="1" 
         android:gravity="right" 
         android:orientation="horizontal" > 
        </LinearLayout> 

        <ImageView 
         android:layout_width="20dip" 
         android:layout_height="fill_parent" > 
        </ImageView> 

        <LinearLayout 
         android:id="@+id/layout_angle" 
         android:layout_width="0dip" 
         android:layout_height="wrap_content" 
         android:layout_weight="1" 
         android:gravity="left" 
         android:orientation="horizontal" > 
        </LinearLayout> 
       </LinearLayout> 
      </FrameLayout> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_weight="1" 
       android:orientation="vertical" > 

       <FrameLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center" > 

        <ImageView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:src="@drawable/background_compass" /> 

        <net.micode.compass.CompassView 
         android:id="@+id/compass_pointer" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:src="@drawable/compass" /> 

        <ImageView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         android:src="@drawable/miui_cover" /> 
       </FrameLayout> 
      </LinearLayout> 
     </LinearLayout> 

     <FrameLayout 
      android:id="@+id/location_layout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/background_bottom" 
       android:orientation="vertical" > 
      </LinearLayout> 

      <TextView 
       android:id="@+id/textview_location" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:text="@string/getting_location" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#7FFFFFFF" /> 
     </FrameLayout> 
    </LinearLayout> 
</FrameLayout> 

<include 
    android:id="@+id/low_accuracy_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|center_horizontal" 
    android:layout_marginBottom="35dip" 
    layout="@*android:layout/transient_notification" 
    android:visibility="gone" /> 

Также здесь есть LogCat обреченности:

11-22 14:22:30.667: E/AndroidRuntime(16140): FATAL EXCEPTION: main 
11-22 14:22:30.667: E/AndroidRuntime(16140): java.lang.RuntimeException: Unable to start  activity  ComponentInfo{styckz.com.clearpicturemode/styckz.com.clearpicturemode.CompassActivity}: android.view.InflateException: Binary XML file line #94: Error inflating class net.micode.compass.CompassView 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.os.Looper.loop(Looper.java:137) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread.main(ActivityThread.java:5103) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at java.lang.reflect.Method.invokeNative(Native Method) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at java.lang.reflect.Method.invoke(Method.java:525) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at dalvik.system.NativeStart.main(Native Method) 
11-22 14:22:30.667: E/AndroidRuntime(16140): Caused by: android.view.InflateException: Binary XML file line #94: Error inflating class net.micode.compass.CompassView 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.Activity.setContentView(Activity.java:1895) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at styckz.com.clearpicturemode.CompassActivity.onCreate(CompassActivity.java:99) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.Activity.performCreate(Activity.java:5133) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
11-22 14:22:30.667: E/AndroidRuntime(16140): ... 11 more 
11-22 14:22:30.667: E/AndroidRuntime(16140): Caused by: java.lang.ClassNotFoundException: Didn't find class "net.micode.compass.CompassView" on path: DexPathList[[zip file "/data/app/styckz.com.clearpicturemode-2.apk"],nativeLibraryDirectories=[/data/app-lib/styckz.com.clearpicturemode-2, /vendor/lib, /system/lib]] 
11-22 14:22:30.667: E/AndroidRuntime(16140): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.createView(LayoutInflater.java:559) 
11-22 14:22:30.667: E/AndroidRuntime(16140): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
11-22 14:22:30.667: E/AndroidRuntime(16140): ... 26 more 
+0

Вам необходимо разместить свой xml-файл проблема есть. – Szymon

+0

Хорошо, извините! – CodeMonkeyAlx

+1

по ошибке, похоже, у вас могут быть путаницы, поскольку они ищут CompasView в 'net.micode.compass.CompassView', где у вас есть compasview в' styckz.com.clearpicturemode' – tyczj

ответ

1

проблема у вас есть неправильный путь в вашем XML.

у вас есть CompassView в настоящее время находится в net.micode.compass., но на самом деле находится в styckz.com.clearpicturemode

так изменить, что в вашем XML

это

<net.micode.compass.CompassView 
    android:id="@+id/compass_pointer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/compass" /> 

должен выглядеть следующим образом

<styckz.com.clearpicturemode.CompassView 
    android:id="@+id/compass_pointer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/compass" /> 
+0

Хорошо, теперь мне нужно найти эту информацию о временном уведомлении в разделе include. – CodeMonkeyAlx

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

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