No se pudo cargar el módulo de Memtrack Logcat Error

84

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

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

}

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>

Salida:

Finalmente muestra la pantalla en blanco.

ingrese la descripción de la imagen aquí

¿Alguien sabe cómo solucionar estos errores?

Steve
fuente
1
¿Resolviste tu problema?
Cocorico
@Cocorico no, todavía no resuelvo este problema.
Steve
Creo que tienes un pb con OpenGl. ¿Usaste un emulador o un dispositivo físico?
Cocorico
@Cocorico Estoy usando un emulador.
Steve
2
@ user2450263 eso no fue útil para mí
Steve

Respuestas:

51

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

"[...] un problema con la carga de {algún} módulo de hardware. Esto podría tener algo que ver con el soporte de 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, tiene algunos nombres de paquetes extraños dentro de su manifiesto:

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

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

el Couldn't load memtrack module errorpodría ocurrir debido a problemas emuladores configuraciones y, debido a que su proyecto contiene muchos problemas de organización, que podría ayudar a darle un nuevo diseño fresco.

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


1. Prueba con otro emulador ...

¡E incluso un dispositivo real! El memtrack moduleerror parece estar relacionado con su emulador. Así que cámbielo a Run configuration, no olvide cambiar el APItambién.


2. Registros de errores de OpenGL

Para los OpenGlerrores, ¡ called unimplemented OpenGL ES APIno es un error sino una declaración! Debe habilitarlo en su manifiesto (puede leer esta respuesta si está usando GLSurfaceView adentro HomeActivity.java, podría ayudarlo):

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

3. Usa el mismo paquete

No declare nombres de paquetes diferentes para todas las etiquetas en Manifest. Debe tener el 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 se pierda con los diseños:

Debe establecer otro diseño para SplashScreenActivity.javaporque no está usando TabHostpara la pantalla de inicio y esta no es una forma segura de recursos. Declare 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 usar un diseño en actividades que no lo usen.


5. ¿Pantalla de bienvenida?

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

Como su nombre es Splash Screen , supongo que desea mostrar una pantalla antes de iniciar su HomeActivity. Por lo tanto, debe 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, avíseme en qué puedo ayudarlo.

fllo
fuente
Estoy usando elTabHost in layout_home.xml
Steve
¿Y por qué no tiene nada en SplashScreenActivity? Esta actividad muestra su TabHost?
fllo
Repito, no estoy seguro, pero deberías probar al menos 1, 2 y 4. ¡Espero que esto te ayude!
fllo
Seguro, lo estoy intentando. Te contaré los resultados más adelante.
Steve
1
Tengo un resultado. Tu respuesta me ayudó. Eres genial. Hice lo que dijiste. finalmente creé y agregué un método llamado blogSelected .Este proyecto está relacionado con mostrar un blog. Creo que es mi error perder ese método. Si no cambio el nombre del paquete como dijiste, no puedo obtener el resultado. Tu respuesta es realmente útil. a mi. gracias que tengas un buen día.
Steve
4

Yo tenía el mismo error. La creación de un nuevo AVD con el nivel de API adecuado resolvió mi problema.

Aysenur
fuente
0

Enfrenté el mismo problema, pero cuando cambié la máscara del dispositivo AVD a HVGA, funcionó.

Rayo
fuente
-2

¿Llamaste al ViewTreeObserver y no lo eliminaste?

    mEtEnterlive.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
         // do nothing here can cause such problem
    });
baiiu
fuente
-2

También tuve este problema, también ejecutándose en un emulador. El mismo mensaje aparecía en Logcat, pero no afectaba la funcionalidad de la aplicación. Pero fue molesto y no me gusta ver errores en el registro que no entiendo.

De todos modos, me deshice del mensaje aumentando la RAM en el emulador.

InquisitivoCrow
fuente