Не удалось загрузить модуль memtrack Ошибка Logcat
Я получаю ошибку Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2
во время выполнения.
Ошибка 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
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>
Выход:
Наконец он отображает пустой экран.
Кто-нибудь знает, как решить эту ошибку Stacktrace. Спасибо заранее.
8 ответов
Эта ошибка, как вы можете прочитать по вопросу, связанному в комментариях выше, приводит к следующему:
"[...] проблема с загрузкой {некоторого} аппаратного модуля. Это может быть связано с поддержкой графических процессоров, обработкой sdcard, в основном с чем угодно".
Шаг 1 ниже должен решить эту проблему. Также, как я вижу, у вас есть несколько странных имен пакетов внутри вашего манифеста:
- package = "com.example.hive" в
<manifest>
тег, - android: name = "com.sit.gems.app.GemsApplication" для
<application>
- android:name="com.sit.gems.activity" в
<activity>
Как вы знаете, эти вещи не мешают отображению вашего приложения. Но я думаю:
Couldn't load memtrack module error
Это может произойти из-за проблем с конфигурацией эмуляторов, а также из-за того, что ваш проект содержит много проблем в организации, он может помочь в обновлении.
Для лучшего использования и с несколькими вещами, это может быть решено, следуя этим советам:
1. Попробуйте другой эмулятор...
И даже реальное устройство! memtrack module
Кажется, ошибка связана с вашим эмулятором. Так что измени его Run configuration
не забудьте поменять API
тоже.
2. Журналы ошибок OpenGL
За OpenGl
ошибки, как called unimplemented OpenGL ES API
это не ошибка, а утверждение! Вы должны включить его в своем манифесте (вы можете прочитать этот ответ, если вы используете GLSurfaceView внутри HomeActivity.java
может вам помочь)
<uses-feature android:glEsVersion="0x00020000"></uses-feature>
// or
<uses-feature android:glEsVersion="0x00010001" android:required="true" />
3. Используйте тот же пакет
Не объявляйте разные имена пакетов всем тегам в Manifest
, Вы должны иметь то же самое для Manifest
, Activities
и т. д. Примерно так выглядит
<!-- 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. Не заблудитесь с макетами:
Вы должны установить другой макет для SplashScreenActivity.java
потому что вы не используете TabHost
для заставки, и это не безопасный способ ресурса. Объявите конкретный макет с чем-то другим, например, именем приложения и логотипом:
// 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" />
Избегайте использования макета в действиях, которые его не используют.
5. Заставка?
Наконец, я не совсем понимаю цель вашего SplashScreenActivity
, Он устанавливает вид контента и сразу заканчивает работу. Это бесполезно.
Поскольку он называется Splash Screen, я предполагаю, что вы хотите отобразить экран перед запуском HomeActivity
, Поэтому вы должны сделать это и не использовать TabHost
макет;):
// 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();
}
}
Я надеюсь, что такие советы помогут вам достичь того, что вы хотите.
Если это не так, дайте мне знать, как я могу вам помочь.
У меня была такая же ошибка. Создание нового AVD с соответствующим уровнем API решило мою проблему.
Я столкнулся с той же проблемой, но когда я сменил обложку устройства AVD на HVGA, все заработало.
Для людей, использующих Xamarin
Я обнаружил, что установка ссылки только на сборки Sdk делает свое дело: Проект -> Свойства -> Параметры Android -> Вкладка компоновщика -> Связывание:
Иногда это может быть из-за легкой проблемы.
Это мой случай:
В проекте мы используем Kotlin и DI с Dagger2 . Наш класс модели данных изменился в API. Однако мы забываем обновить его на стороне приложения. Таким образом, у меня была такая же ошибка, как memtrack: не удалось загрузить модуль memtrack .
Решение моего случая:
- Обновите модель данных в приложении.
- Нажмите «Очистить проект» в Android Studio.
- Нажмите «Восстановить проект» в Android Studio.
- Сделанный.
У меня тоже была эта проблема, также запущенная на эмуляторе. То же сообщение появлялось в Logcat, но оно не влияло на функциональность приложения. Но это раздражало, и мне не нравилось видеть в журнале ошибки, которые я не понимаю.
Во всяком случае, я избавился от сообщения путем увеличения оперативной памяти на эмуляторе.
Вы вызвали ViewTreeObserver и не удалили его.
mEtEnterlive.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
// do nothing here can cause such problem
});