0

Je suis nouveau sur Android et j'essaie de gonfler un pied de page commun dans de nombreuses activités de mon application Android. Certains boutons du pied de page doivent fonctionner de la même manière dans l'application. Voici mon code:Android: Inflate Exception

classe BottomBar:

package com.traderscockpit; 

import android.content.Intent; 
import android.util.AttributeSet; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.RelativeLayout; 

public class BottomBar extends RelativeLayout { 
    private LayoutInflater inflater; 

    public BottomBar(Context context, AttributeSet attr) { 
     super(context, attr); 
     // TODO Auto-generated constructor stub 
     inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     inflater.inflate(R.layout.bottom_bar, this, true); 
    } 


} 

bottom_bar.xml:

<?xml version="1.0" encoding="utf-8"?> 
<merge xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <Button 
     android:id="@+id/homeButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Home"   
     android:layout_weight="1" 
     android:onClick="HomeClick" 
     /> 

    <Button 
     android:layout_weight="1" 
     android:id="@+id/logoutButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Logout" 
     android:onClick="HomeClick" 
     />  
</merge> 

Voilà comment je suis la fusion à l'activité:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="0dp" 
    > 
     <ListView 
     android:id="@+id/menu" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     > 
     </ListView> 
     <com.traderscockpit.inflating.BottomBar 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0"   
      /> 
</LinearLayout> 

Voici la trace de pile que je reçois:

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

Je n'ai pas attaché les gestionnaires d'événements jusqu'à maintenant, je ne sais pas où le problème est. S'il vous plaît aider. Merci d'avance.

Répondre

2

vous avez une faute de frappe dans le paquet à l'intérieur du xml. il devrait être com.traderscockpit.BottomBar, pas com.traderscockpit.inflating.BottomBar

+0

oui, la solution de hawkeye devrait le faire – bofredo

+0

Oui, merci beaucoup pour l'aide. J'accepte cette réponse dès que stackoverflow me le permet ... :) – Sourabh

0

BottomBar classe est dans le paquet mais vous com.traderscockpit dans le fichier xml définir comme com.traderscockpit.inflating