Не вдалося завантажити модуль memtrack Помилка Logcat


84

Я отримую повідомлення про помилку 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

Маніфест:

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

Вихід:

Нарешті він відображає порожній екран.

введіть тут опис зображення

Хто-небудь знає, як вирішити ці помилки?


1
Ви вирішили свою проблему?
Кокоріко

@Cocorico ні, я ще не вирішив цю проблему. Чи знаєте ви?
Стів

Я думаю, у вас є програма з OpenGl. Ви використовували емулятор чи фізичний пристрій?
Кокоріко

@Cocorico Я використовую емулятор.
Стів

2
@ user2450263, що для мене не було корисним
Стів

Відповіді:


51

Ця помилка, як ви можете прочитати щодо запитання, зв’язаного у коментарях вище , призводить до:

"[...] проблема із завантаженням {деякого} апаратного модуля. Це може бути щось спільне з підтримкою графічного процесора, обробкою SD-карт, в основному будь-чим."

Крок 1 нижче повинен вирішити цю проблему. Крім того, як я бачу, у вас є кілька дивних назв пакетів у вашому маніфесті:

  • package = "com.example.hive" в <manifest>тезі,
  • android: name = "com.sit.gems.app.GemsApplication" для<application>
  • and 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();
    }
}  

Сподіваюсь, подібні поради допоможуть вам досягти бажаного.
Якщо справа не в цьому, дайте мені знати, чим я можу вам допомогти.


Я використовуюTabHost in layout_home.xml
Стів

І чому у вас немає нічого в SplashScreenActivity? Ця активність відображає ваш TabHost?
fllo

Повторюю, я не впевнений, але вам слід спробувати принаймні 1, 2 і 4. Сподіваюся, це допоможе!
fllo

Ви впевнені. Я намагаюся. Я розповім вам результати пізніше.
Стів

1
Я отримав результат. Ваша відповідь корисна для мене. Ви чудові. Я зробив те, що ви сказали. нарешті, я створив і додав один метод з назвою blogSelected. Цей проект пов’язаний з відображенням блогу. Я думаю, що моя помилка пропустила цей метод. Якщо я не зміню назву пакета, як ви сказали, я не можу отримати результат. для мене. Дякую. Гарного дня.
Стів

4

У мене була та ж помилка. Створення нового AVD з відповідним рівнем API вирішило мою проблему.


0

Я зіткнувся з тією ж проблемою, але коли я змінив шкіру пристрою AVD на HVGA, це спрацювало.


-2

Ви викликали ViewTreeObserver і не видаляєте його.

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

-2

У мене теж була ця проблема, яка також працює на емуляторі .. Те саме повідомлення відображалося на Logcat, але це не впливало на функціональність програми. Але це дратувало, і я не люблю бачити помилки в журналі, які я не розумію.

У всякому разі, я позбувся повідомлення, збільшивши оперативну пам'ять на емуляторі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.