2012-04-05 1 views
1

Je viens d'ajouter la bibliothèque GreenDroid dans mon application. J'ai étendu la vue de début avec GDActivity et ajouté le NFFApplication et ajouté dans le Manifeste sous la balise d'application android:name=".logic.NFFApplication".Implémentation de GreenDroid par la suite

NFFAplication:

public class NFFApplication extends GDApplication { 

    @Override 
    public Class<?> getHomeActivityClass() { 
     return NFFApplication.class; 
    } 

    @Override 
    public Intent getMainApplicationIntent() { 
     return new Intent(NFFApplication.this,MainView.class); 
    } 

} 

Connexion Activité:

public class LoginView extends GDActivity { 

    private ProgressDialog pd = null; 
    Editor editor = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setTitle("Movie"); 
    setActionBarContentView(R.layout.loginlayout); 

LogCat:

04-05 16:12:16.714: E/AndroidRuntime(443): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.korn.nff/com.korn.nff.view.LoginView}: android.view.InflateException: Binary XML file line #27: Error inflating class greendroid.widget.ActionBar 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.os.Looper.loop(Looper.java:123) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.main(ActivityThread.java:4363) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Method.invokeNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Method.invoke(Method.java:521) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
04-05 16:12:16.714: E/AndroidRuntime(443): at dalvik.system.NativeStart.main(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class greendroid.widget.ActionBar 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.Activity.setContentView(Activity.java:1622) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.ensureLayout(GDActivity.java:187) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.getActionBar(GDActivity.java:265) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.app.GDActivity.setTitle(GDActivity.java:256) 
04-05 16:12:16.714: E/AndroidRuntime(443): at com.korn.nff.view.LoginView.onCreate(LoginView.java:39) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 11 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: java.lang.reflect.InvocationTargetException 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.widget.ActionBar.<init>(ActionBar.java:130) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Constructor.constructNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 24 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/title_bar_shadow.9.png from drawable resource ID #0x0 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.Resources.loadDrawable(Resources.java:1710) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.TypedArray.getDrawable(TypedArray.java:548) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.View.<init>(View.java:1850) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.View.<init>(View.java:1799) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.view.ViewGroup.<init>(ViewGroup.java:284) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.widget.LinearLayout.<init>(LinearLayout.java:92) 
04-05 16:12:16.714: E/AndroidRuntime(443): at greendroid.widget.ActionBar.<init>(ActionBar.java:134) 
04-05 16:12:16.714: E/AndroidRuntime(443): ... 28 more 
04-05 16:12:16.714: E/AndroidRuntime(443): Caused by: java.io.FileNotFoundException: res/drawable-hdpi/title_bar_shadow.9.png 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.AssetManager.openNonAssetNative(Native Method) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.AssetManager.openNonAsset(AssetManager.java:390) 
04-05 16:12:16.714: E/AndroidRuntime(443): at android.content.res.Resources.loadDrawable(Resources.java:1702) 

Répondre

3

Je ne suis pas 100% sûr que ce soit la question, mais peut-il que vous avez oublié de remplacer le thème? Greendroid a besoin d'un thème personnalisé pour l'application à exécuter.

Voici la ligne dans la documentation greendroid:

You finally need to make your project use the GreenDroid base theme. In your AndroidManifest.xml, go to the application tag and add android:theme="@style/Theme.GreenDroid" as a new attribute. 

étapes à suivre:

  1. Téléchargez la bibliothèque GreenDroid sur votre ordinateur avec un simple: git clone http://github.com/cyrilmottier/GreenDroid.git. Comme d'habitude, Git va cloner le dépôt GreenDroid et créer un dossier GreenDroid qui contient 3 dossiers: GreenDroid: la bibliothèque de base. C'est le code qui sera le plus souvent lié à votre code. GreenDroid-GoogleAPIs: Extension de GreenDroid incluant les fonctionnalités liées aux API Google (GDMapActivity par exemple) GDCatalog: l'application de démonstration. Ce projet contient beaucoup d'extraits de code vous montrant comment utiliser GreenDroid.

  2. Depuis mai 2010, le plugin ADT a ajouté une nouvelle fonctionnalité: la capacité de travailler avec des projets de bibliothèque. L'utilisation de GreenDroid consiste en en appliquant le projet GreenDroid en tant que bibliothèque à votre application. Une description complète de la façon d'utiliser les projets de bibliothèque est donnée sur le site de documentation Android . Assurez-vous que votre environnement de développement utilise les derniers outils et plates-formes, car les anciennes versions des outils et des plates-formes ne prennent pas en charge la construction avec le projet de bibliothèque . Si vous souhaitez utiliser certaines fonctionnalités API Google, assurez-vous que vous êtes en utilisant la bibliothèque GreenDroid-GoogleAPIs. GreenDroid-GoogleAPIs est basé sur GreenDroid. Par conséquent, vous n'avez pas besoin de lier GreenDroid en tant que bibliothèque Android à votre projet. Par défaut, le thème GreenDroid hérite de @android: style/Thème. Si votre projet hérite d'un thème différent, vous devrez modifier la bibliothèque GreenDroid par vous-même (et le faire chaque fois que vous mettez à jour GreenDroid comme mise à jour supprime toutes vos modifications - travaillant toujours sur un chemin à surmonter cela problème). Ouvrez le res/values ​​/ gd_themes.xml et remplacez le thème parent @android: style/Theme avec votre propre thème.

  3. Beaucoup de caractéristiques de GreenDroid (GDActivity, GDListActivity ou GDTabActivity par exemple) exige que votre demande soit un GDApplication alors assurez-vous que votre application est une classe GDApplication .Pour ce faire, ajoutez simplement android: name = "greendroid.app.GDApplication (où greendroid.app.GDApplication peut être remplacé par votre propre classe que hérite de GDApplication) dans la balise d'application de votre AndroidManifest.xml .

  4. Vous devez enfin faire de votre projet utiliser le thème de base GreenDroid Dans votre AndroidManifest.xml, allez à l'étiquette d'application et ajoutez android:. theme = "style @/Theme.GreenDroid" en tant que nouvel attribut

Questions connexes