No se pudo cargar el error Logcat del módulo memtrack

Resuelto Stephen asked hace 54 años • 6 respuestas

Recibo un error Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2en tiempo de ejecución.

Error de seguimiento de pila:

 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

Manifiesto:

<?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();
    }

}

diseño_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>

Producción:

Finalmente muestra la pantalla en blanco.

ingrese la descripción de la imagen aquí

¿Alguien sabe cómo solucionar estos errores?

Stephen avatar Jan 01 '70 08:01 Stephen
Aceptado

Este error, como puede leer en la pregunta vinculada en los comentarios anteriores , resulta ser:

"[...] un problema con la carga de {algunos} módulos de hardware. Esto podría tener algo que ver con la compatibilidad con GPU, el manejo de tarjetas SD, básicamente cualquier cosa".

El paso 1 a continuación debería resolver este problema. Además, como puedo ver, tienes algunos nombres de paquetes extraños dentro de tu manifiesto:

  • paquete="com.example.hive" en <manifest>la etiqueta,
  • android:nombre="com.sit.gems.app.GemsApplication" para<application>
  • y android:name="com.sit.gems.activity" en<activity>

Como sabes, estas cosas no impiden que se muestre tu aplicación. Pero yo pienso:

Esto Couldn't load memtrack module errorpodría ocurrir debido a problemas de configuración de los emuladores y, debido a que su proyecto contiene muchos problemas de organización, podría ser útil realizar un nuevo rediseño.

Para un mejor uso y con pocas cosas, esto se puede solucionar siguiendo estos consejos:


1. Prueba con otro emulador...

¡E incluso un dispositivo real! El memtrack moduleerror parece estar relacionado con tu emulador. Así que cámbialo por Run configuration, no olvides cambiarlo APItambién.


2. Registros de errores de OpenGL

Para OpenGlerrores, como called unimplemented OpenGL ES API, ¡no es un error sino una declaración! Debes habilitarlo en tu manifiesto (puedes leer esta respuesta si estás usando GLSurfaceView en el interior HomeActivity.java, podría ayudarte):

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

3. Utilice el mismo paquete

No declares nombres de paquetes diferentes para todas las etiquetas en Manifest. Deberías tener lo mismo para Manifest, Activities, etc. Algo como esto se ve bien:

<!-- 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. No te pierdas con los diseños:

Deberías configurar otro diseño SplashScreenActivity.javaporque no estás usando la TabHostpantalla de inicio y esta no es una forma segura de utilizar recursos. Declara un diseño específico con algo diferente, como el nombre de la aplicación y el logotipo:

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

Evite utilizar un diseño en actividades que no lo utilicen.


5. ¿Pantalla de bienvenida?

Finalmente, no entiendo claramente el propósito de su SplashScreenActivity. Establece una vista de contenido y finaliza directamente. Esto es inútil.

Como su nombre es Pantalla de bienvenida , supongo que desea mostrar una pantalla antes de iniciar su archivo HomeActivity. Por lo tanto, debes hacer esto y no usar el TabHostdiseño ;) :

// 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();
    }
}  

Espero que este tipo de consejos te ayuden a lograr lo que deseas.
Si no es el caso, déjame saber cómo puedo ayudarte.

Blo avatar Mar 30 '2014 14:03 Blo

Yo tenía el mismo error. Crear un nuevo AVD con el nivel de API apropiado resolvió mi problema.

aysenur avatar Oct 20 '2014 07:10 aysenur