Recibo un error Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2
en 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.
¿Alguien sabe cómo solucionar estos errores?
android
logcat
stack-trace
Steve
fuente
fuente
Respuestas:
Este error, como puede leer en la pregunta vinculada en los comentarios anteriores , resulta ser:
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:
<manifest>
etiqueta,<application>
<activity>
Como sabe, estas cosas no impiden que se muestre su aplicación. Pero yo pienso:
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 module
error parece estar relacionado con su emulador. Así que cámbielo aRun configuration
, no olvide cambiar elAPI
también.2. Registros de errores de OpenGL
Para los
OpenGl
errores, ¡called unimplemented OpenGL ES API
no es un error sino una declaración! Debe habilitarlo en su manifiesto (puede leer esta respuesta si está usando GLSurfaceView adentroHomeActivity.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 paraManifest
,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.java
porque no está usandoTabHost
para 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 elTabHost
diseñ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.
fuente
TabHost in layout_home.xml
Yo tenía el mismo error. La creación de un nuevo AVD con el nivel de API adecuado resolvió mi problema.
fuente
Enfrenté el mismo problema, pero cuando cambié la máscara del dispositivo AVD a HVGA, funcionó.
fuente
¿Llamaste al ViewTreeObserver y no lo eliminaste?
mEtEnterlive.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { // do nothing here can cause such problem });
fuente
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.
fuente