web-dev-qa-db-fra.com

Impossible de charger le module memtrack Logcat Error

Je reçois une erreur Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2 au moment de l'exécution.

Erreur StackTrace:

 E/SoundPool(1280)       : error loading /system/media/audio/ui/Effect_Tick.ogg 
 E/SoundPool(1280)       : error loading /system/media/audio/ui/KeypressStandard.ogg       
 E/SurfaceFlinger(931)   : glCheckFramebufferStatusOES error 733995180
 E/memtrack(1873)        : Couldn't load memtrack module (No such file or directory)
 E/Android.os.Debug(1873): failed to load memtrack module: -2
 E/libEGL(931)           : called unimplemented OpenGL ES API
 E/libEGL(931)           : called unimplemented OpenGL ES API
 E/libEGL(931)           : called unimplemented OpenGL ES API
 E/libEGL(931)           : called unimplemented OpenGL ES API
 E/SurfaceFlinger(931)   : glCheckFramebufferStatusOES error 733995180
 E/SurfaceFlinger(931)   : got GL_FRAMEBUFFER_COMPLETE_OES error while taking screenshot
 E/libEGL(931)           : called unimplemented OpenGL ES API
 E/libEGL(931)           : called unimplemented OpenGL ES API

manifeste:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.Hive"
    Android:versionCode="1"
    Android:versionName="1.0">

    <uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="19" />

<uses-permission Android:name="Android.permission.INTERNET"/>
 <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

    <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name" Android:name="com.sit.gems.app.GemsApplication"
        Android:theme="@style/AppTheme" >

    <activity
            Android:name="com.sit.gems.activity.SplashActivity"
            Android:label="@string/app_name" Android:screenOrientation="portrait">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity Android:name="com.sit.gems.activity.HomeActivity" Android:screenOrientation="portrait"></activity>
    </application>

</manifest>

SplashActivity.Java:

package com.sit.gems.activity;
import com.example.Hive.R;
import Android.content.Intent;
import Android.os.Bundle;
import Android.support.v4.app.FragmentActivity;

public class SplashActivity extends FragmentActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_home);
        startActivity(new Intent(SplashActivity.this,HomeActivity.class));
        SplashActivity.this.finish();
    }

}

layout_home.xml:

<?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" >

    <TabHost
        Android:id="@Android:id/tabhost"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent" >

        <RelativeLayout
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent" >

            <FrameLayout
                Android:id="@Android:id/tabcontent"
                Android:layout_width="fill_parent"
                Android:layout_height="fill_parent"
                Android:layout_above="@Android:id/tabs" >

                <FrameLayout
                    Android:id="@+id/tab_home"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" />

                <FrameLayout
                    Android:id="@+id/tab_video"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" />

                <FrameLayout
                    Android:id="@+id/tab_audio"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" >
                </FrameLayout>

                <FrameLayout
                    Android:id="@+id/tab_blog"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" >
                </FrameLayout>

                <FrameLayout
                    Android:id="@+id/tab_gal"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" >
                </FrameLayout>

                <FrameLayout
                    Android:id="@+id/tab_more"
                    Android:layout_width="fill_parent"
                    Android:layout_height="fill_parent" >
                </FrameLayout>
            </FrameLayout>

            <TabWidget
                Android:id="@Android:id/tabs"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:layout_alignParentBottom="true"
                Android:background="@drawable/bottom_bar"
                Android:divider="@null" />

            <!-- Android:background="#d8e49c" -->
        </RelativeLayout>
    </TabHost>

</LinearLayout>

Sortie:

Enfin, il affiche l'écran vide.

enter image description here

Quelqu'un sait comment résoudre ces erreurs?

74
Stephen

Comme vous pouvez le lire sur cette question est liée aux commentaires ci-dessus , cette erreur a pour résultat:

"[...] un problème avec le chargement de {certains} modules matériels. Cela pourrait être lié au support du GPU, à la gestion de la carte SD, à peu près tout."

L'étape 1 ci-dessous devrait résoudre ce problème. Aussi, comme je peux le voir, vous avez des noms de paquets étranges dans votre manifeste:

  • package = "com.example.Hive" dans la balise <manifest>,
  • Android: name = "com.sit.gems.app.GemsApplication" pour <application>
  • et Android: name = "com.sit.gems.activity" dans <activity>

Comme vous le savez, ces éléments n'empêchent pas l'affichage de votre application. Mais je pense:

le Couldn't load memtrack module error peut se produire en raison de problèmes de configuration des émulateurs et, comme votre projet contient de nombreux problèmes d'organisation, il peut être utile de procéder à une nouvelle conception.

Pour mieux utiliser et avec peu de choses, cela peut être résolu en suivant ces conseils:


1. Essayez un autre émulateur ...

Et même un vrai appareil! L'erreur memtrack module semble liée à votre émulateur. Alors changez le en Run configuration, n'oubliez pas de changer le API aussi.


2. Journaux des erreurs OpenGL

Pour les erreurs OpenGl, comme called unimplemented OpenGL ES API, ce n'est pas une erreur mais une déclaration! Vous devez l'activer dans votre manifeste (vous pouvez lire cette réponse si vous utilisez GLSurfaceView dans HomeActivity.Java, cela pourrait vous aider):

<uses-feature Android:glEsVersion="0x00020000"></uses-feature>  
// or
<uses-feature Android:glEsVersion="0x00010001" Android:required="true" />

3. Utilisez le même paquet

Ne déclarez pas de noms de paquet différents pour toutes les balises dans Manifest. Vous devriez avoir la même chose pour Manifest, Activities, etc. Quelque chose comme cela semble correct:

<!-- set the general package -->
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.sit.gems.activity"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <!-- don't set a package name in <application> -->
    <application ... >

        <!-- then, declare the activities -->
        <activity
            Android:name="com.sit.gems.activity.SplashActivity" ... >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- same package here -->
        <activity
            Android:name="com.sit.gems.activity.HomeActivity" ... >
        </activity>
    </application>
</manifest>  

4. Ne vous perdez pas avec les mises en page:

Vous devez définir une autre présentation pour SplashScreenActivity.Java parce que vous n'utilisez pas le paramètre TabHost pour l'écran de démarrage et qu'il ne s'agit pas d'un moyen de ressource sûr. Déclarez une mise en page spécifique avec quelque chose de différent, comme le nom de l'application et le logo:

// inside SplashScreen class
setContentView(R.layout.splash_screen);

// layout splash_screen.xml
<TextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
     Android:layout_width="match_parent"
     Android:layout_height="match_parent" 
     Android:gravity="center"
     Android:text="@string/appname" />  

Évitez d’utiliser une mise en page dans des activités qui ne l’utilisent pas.


5. Écran de démarrage?

Enfin, je ne comprends pas clairement le but de votre SplashScreenActivity. Il définit une vue du contenu et se termine directement. C'est inutile.

Comme son nom est Écran de démarrage , je suppose que vous souhaitez afficher un écran avant de lancer votre HomeActivity. Par conséquent, vous devriez faire ceci et ne pas utiliser la mise en page TabHost;) :

// FragmentActivity is also useless here! You don't use a Fragment into it, so, use traditional Activity
public class SplashActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // set your splash_screen layout
        setContentView(R.layout.splash_screen);

        // create a new Thread
        new Thread(new Runnable() {
            public void run() {
                try {
                    // sleep during 800ms
                    Thread.sleep(800);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                // start HomeActivity
                startActivity(new Intent(SplashActivity.this, HomeActivity.class));
                SplashActivity.this.finish();
            }
        }).start();
    }
}  

J'espère que ce genre de conseils vous aidera à réaliser ce que vous voulez.
Si ce n’est pas le cas, faites-moi savoir comment je peux vous aider.

44
fllo

J'ai eu la même erreur. La création d'un nouveau DAV avec le niveau d'API approprié a résolu mon problème.

4
aysenur

J'ai rencontré le même problème mais quand j'ai changé la peau du périphérique AVD en HVGA, cela a fonctionné.

1
Ray

L'activation de l'intégration ADB a résolu mon problème.

Dans le menu: Tools -> Android -> Enable ADB Integration

enter image description here

1
MehrdadSComputer

Pour les personnes utilisant Xamarin

J'ai constaté que le fait de définir le lien avec Sdk Assemblies Only ne pose aucun problème: Projet -> Propriétés -> Android Options -> onglet Éditeur de liens -> Liaison:

enter image description here

1
Pierre