Ik krijg een foutmelding Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2
op looptijd.
Stacktrace-fout:
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
manifest:
<?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>
Uitvoer:
Eindelijk wordt het lege scherm weergegeven.
Weet iemand hoe je deze fouten kunt oplossen?
Antwoord 1, autoriteit 100%
Deze fout, zoals je kunt lezen op de vraag gekoppeld in opmerkingen hierboven, resultaten zijn:
“[…] een probleem met het laden van {sommige} hardwaremodules. Dit kan te maken hebben met GPU-ondersteuning, sd-kaartverwerking, eigenlijk alles.”
De onderstaande stap 1 zou dit probleem moeten oplossen. Zoals ik kan zien, heb je een aantal vreemde pakketnamen in je manifest:
- package=”com.example.hive”in
<manifest>
-tag, - android:name=”com.sit.gems.app.GemsApplication”voor
<application>
- en android:name=”com.sit.gems.activity”in
<activity>
Zoals u weet, verhinderen deze zaken niet dat uw app wordt weergegeven. Maar ik denk:
De
Couldn't load memtrack module error
niet optreden vanwege emulatorenconfiguraties problemen en, omdat uw project veel organisatieproblemen bevat, kan het helpen om een vers herontwerp te geven.
Voor beter gebruik en met weinig dingen kan dit worden opgelost door deze tips te volgen:
1. Probeer een andere emulator …
en zelfs een echt apparaat! De memtrack module
FOUT lijkt gerelateerd aan uw emulator. Dus verander het in Run configuration
, vergeet niet om de API
te wijzigen.
2. OpenGL-foutlogboeken
Voor OpenGl
FOUTEN, AS called unimplemented OpenGL ES API
, het is geen fout, maar een verklaring! U moet het in uw manifest inschakelen (u kunt lezen dit antwoord als u GLSURFACEVIEW BINNENDIENING gebruikt HomeActivity.java
, het kan u helpen):
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
// or
<uses-feature android:glEsVersion="0x00010001" android:required="true" />
3. Gebruik hetzelfde pakket
Verklaar geen verschillende pakketnamen aan alle tags in Manifest
. U moet hetzelfde hebben voor Manifest
, Activities
, enz. Iets als deze ziet er goed uit:
<!-- 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. Raak niet verdwaald met lay-outs:
U moet een andere lay-out instellen voor SplashScreenActivity.java
omdat u de TabHost
voor het SPLASH-scherm niet gebruikt en dit is geen veilige middelen. Verklaar een specifieke lay-out met iets anders, zoals de app-naam en het 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" />
Vermijd het gebruik van een lay-out in activiteiten die het niet gebruiken.
5. Splash-scherm?
Ten slotte begrijp ik het doel van uw SplashScreenActivity
niet duidelijk. Het stelt een contentweergave en direct af. Dit is nutteloos.
Zoals de naam is SPLASH-scherm , neem ik aan dat u een scherm wilt weergeven voordat u uw HomeActivity
. Daarom moet u dit doen en niet gebruiken TabHost
lay-out;) :
// 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();
}
}
Ik hoop dat dit soort tips je helpen te bereiken wat je wilt.
Als dit niet het geval is, laat me dan weten hoe ik je kan helpen.
Antwoord 2, autoriteit 9%
Ik had dezelfde fout. Het maken van een nieuwe AVD met het juiste API-niveau loste mijn probleem op.
Antwoord 3
Ik had hetzelfde probleem, maar toen ik de skin van het AVD-apparaat veranderde in HVGA, werkte het.
Antwoord 4
Soms kan het komen door een eenvoudig probleem.
Dit is mijn geval:
In het project gebruiken we Kotlinen DImet Dagger2. Onze datamodelklasse is gewijzigd in API. We vergeten het echter bij te werken aan de applicatiezijde. Ik had dus dezelfde fout, namelijk memtrack: kan memtrack-module niet laden.
Mijn case-oplossing:
- Update gegevensmodel in app.
- Klik op ‘Project opschonen’in Android Studio.
- Klik op ‘Project opnieuw opbouwen’in Android Studio.
- Gereed.
Antwoord 5
heb je de ViewTreeObserver gebeld en niet verwijderd.
mEtEnterlive.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
// do nothing here can cause such problem
});
Antwoord 6
Ik had dit probleem ook, ook draaiend op een emulator.. Hetzelfde bericht verscheen op Logcat, maar het had geen invloed op de functionaliteit van de app. Maar het was vervelend en ik hou er niet van om fouten in het logboek te zien die ik niet begrijp.
Hoe dan ook, ik heb het bericht verwijderd door het RAM-geheugenop de emulator te vergroten.