Impossibile caricare il modulo memtrack Logcat Error


88

Ricevo un errore Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2 in fase di esecuzione.

Errore 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

Manifesto:

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

Produzione:

Infine visualizza la schermata vuota.

inserisci qui la descrizione dell'immagine

Qualcuno sa come risolvere questi errori?


1
hai risolto il tuo problema?
Cocorico

@Cocorico no, non risolvo ancora questi problemi. Lo sapevi?
Steve

Penso che tu abbia un pb con OpenGl. Hai usato un emulatore o un dispositivo fisico?
Cocorico

@Cocorico Sto usando un emulatore.
Steve

2
@ user2450263 che non è stato utile per me
Steve

Risposte:


52

Questo errore, come puoi leggere sulla domanda collegata nei commenti sopra , risulta essere:

"[...] un problema con il caricamento di {qualche} modulo hardware. Potrebbe essere qualcosa a che fare con il supporto GPU, la gestione delle sdcard, praticamente qualsiasi cosa."

Il passaggio 1 di seguito dovrebbe risolvere questo problema. Inoltre, come posso vedere, hai alcuni strani nomi di pacchetti all'interno del tuo manifest:

  • pacchetto = "com.example.hive" nel <manifest>tag,
  • android: name = "com.sit.gems.app.GemsApplication" per<application>
  • e android: name = "com.sit.gems.activity" in<activity>

Come sai, queste cose non impediscono la visualizzazione della tua app. Ma io penso:

il Couldn't load memtrack module error potrebbe verificarsi a causa di problemi di configurazione degli emulatori e, poiché il progetto contiene molti problemi di organizzazione, potrebbe essere utile dare una nuova riprogettazione.

Per un utilizzo migliore e con poche cose, questo può essere risolto seguendo questi suggerimenti:


1. Prova un altro emulatore ...

E anche un vero dispositivo! L' memtrack moduleerrore sembra correlato al tuo emulatore. Quindi cambialo in Run configuration, non dimenticare di cambiare APIanche il.


2. Log degli errori OpenGL

Per OpenGlerrori, come called unimplemented OpenGL ES API, non è un errore ma un'affermazione! Dovresti abilitarlo nel tuo manifest (puoi leggere questa risposta se stai usando GLSurfaceView all'interno HomeActivity.java, potrebbe aiutarti):

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

3. Utilizzare lo stesso pacchetto

Non dichiarare nomi di pacchetti diversi per tutti i tag in Manifest. Si dovrebbe avere lo stesso per Manifest, Activitiesecc Qualcosa come proprio in questo aspetto:

<!-- 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. Non perderti con i layout:

Dovresti impostare un altro layout per SplashScreenActivity.javaperché non stai usando TabHostper la schermata iniziale e questo non è un modo sicuro per le risorse. Dichiara un layout specifico con qualcosa di diverso, come il nome dell'app e il 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" />  

Evita di utilizzare un layout in attività che non lo utilizzano.


5. Schermata iniziale?

Infine, non capisco chiaramente lo scopo del tuo SplashScreenActivity. Imposta una visualizzazione del contenuto e termina direttamente. Questo è inutile.

Poiché il suo nome è Splash Screen , presumo che tu voglia visualizzare una schermata prima di avviare il tuo HomeActivity. Pertanto, dovresti farlo e non usare il TabHostlayout;) :

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

Spero che questo tipo di suggerimenti ti aiuti a ottenere ciò che desideri.
Se non è così, fammi sapere come posso aiutarti.


Sto usandoTabHost in layout_home.xml
Steve

E perché non hai nulla in SplashScreenActivity? Questa attività mostra il tuo TabHost?
fllo

Ripeto che non sono sicuro, ma dovresti provare almeno 1, 2 e 4. Spero che questo aiuti!
fllo

certo, lo sto provando. ti dirò i risultati più tardi.
Steve

1
Ho ottenuto un risultato La tua risposta è stata utile per me Sei fantastico Ho fatto quello che hai detto. alla fine ho creato e aggiunto un metodo chiamato blogSelected .Questo progetto è correlato alla visualizzazione di un blog. Penso che sia un mio errore non aver notato quel metodo. per me. grazie buona giornata.
Steve

5

Ho avuto lo stesso errore. La creazione di un nuovo AVD con il livello API appropriato ha risolto il mio problema.


0

Ho affrontato lo stesso problema ma quando ho cambiato la skin del dispositivo AVD in HVGA, ha funzionato.


-2

hai chiamato ViewTreeObserver e non rimuoverlo.

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

-2

Ho avuto anche questo problema, funzionando anche su un emulatore .. Lo stesso messaggio veniva visualizzato su Logcat, ma non influiva sulla funzionalità dell'app. Ma è stato fastidioso e non mi piace vedere errori sul registro che non capisco.

Ad ogni modo, mi sono sbarazzato del messaggio aumentando la RAM sull'emulatore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.