Không thể tải mô-đun ghi nhớ Lỗi Logcat


84

Tôi đang gặp lỗi Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2trong thời gian chạy.

Lỗi 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

Rõ ràng:

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

Đầu ra:

Cuối cùng nó hiển thị màn hình trống.

nhập mô tả hình ảnh ở đây

Có ai biết cách giải quyết những lỗi này không?


1
bạn đã giải quyết vấn đề của bạn?
Cocorico

@Cocorico không, tôi vẫn chưa giải quyết được vấn đề này.
Steve

Tôi nghĩ rằng bạn có một pb với OpenGl. Bạn đã sử dụng trình giả lập hay thiết bị kỳ lạ?
Cocorico

@Cocorico Tôi đang sử dụng trình giả lập.
Steve

2
@ user2450263 đó không phải là hữu ích cho tôi
Steve

Câu trả lời:


51

Lỗi này, như bạn có thể đọc trên câu hỏi được liên kết trong nhận xét ở trên , kết quả là:

"[...] sự cố khi tải mô-đun phần cứng {some}. Đây có thể là vấn đề liên quan đến hỗ trợ GPU, xử lý sdcard, về cơ bản là bất cứ điều gì."

Bước 1 dưới đây sẽ giải quyết vấn đề này. Ngoài ra, như tôi có thể thấy, bạn có một số tên gói lạ bên trong tệp kê khai của mình:

  • package = "com.example.hive" trong <manifest>thẻ,
  • android: name = "com.sit.gems.app.GemsApplication" cho<application>
  • android: name = "com.sit.gems.activity" trong<activity>

Như bạn đã biết, những điều này không ngăn ứng dụng của bạn được hiển thị. Nhưng tôi nghĩ:

điều Couldn't load memtrack module errornày có thể xảy ra do các vấn đề về cấu hình trình giả lập và do dự án của bạn có nhiều vấn đề về tổ chức, nên việc thiết kế lại mới có thể hữu ích.

Để sử dụng tốt hơn và ít gặp phải vấn đề, điều này có thể được giải quyết bằng cách làm theo các mẹo sau:


1. Hãy thử một trình giả lập khác ...

Và thậm chí là một thiết bị thực sự! Các memtrack modulelỗi dường như liên quan đến giả lập của bạn. Vì vậy, thay đổi nó thành Run configuration, đừng quên thay đổi APIquá.


2. Nhật ký lỗi OpenGL

Đối với OpenGllỗi, như called unimplemented OpenGL ES API, nó không phải là một lỗi mà là một câu lệnh! Bạn nên bật nó trong tệp kê khai của mình (bạn có thể đọc câu trả lời này nếu bạn đang sử dụng GLSurfaceView bên trong HomeActivity.java, nó có thể giúp bạn):

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

3. Sử dụng cùng một gói

Không khai báo các tên gói khác nhau cho tất cả các thẻ trong Manifest. Bạn nên có cho cùng Manifest, Activitiesvv Một cái gì đó giống như vẻ bề ngoài này phải:

<!-- 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. Đừng lạc lối với bố cục:

Bạn nên đặt một bố cục khác cho SplashScreenActivity.javavì bạn không sử dụng TabHostcho màn hình giật gân và đây không phải là cách tài nguyên an toàn. Khai báo một bố cục cụ thể với một cái gì đó khác biệt, chẳng hạn như tên ứng dụng và biểu trưng:

// 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" />  

Tránh sử dụng bố cục trong các hoạt động không sử dụng nó.


5. Màn hình Splash?

Cuối cùng, tôi không hiểu rõ ràng mục đích của bạn SplashScreenActivity. Nó thiết lập một chế độ xem nội dung và kết thúc trực tiếp. Điều này là vô ích.

Như tên của nó là Splash Screen , tôi cho rằng bạn muốn hiển thị một màn hình trước khi khởi chạy HomeActivity. Do đó, bạn nên làm điều này và không sử dụng TabHostbố cục;) :

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

Tôi hy vọng loại mẹo này sẽ giúp bạn đạt được những gì bạn muốn.
Nếu không đúng, hãy cho tôi biết tôi có thể giúp gì cho bạn.


Tôi đang sử dụngTabHost in layout_home.xml
Steve,

Và tại sao bạn không có gì trong SplashScreenActivity? Hoạt động này hiển thị TabHost của bạn?
fllo,

Tôi nhắc lại, tôi không chắc lắm nhưng bạn nên thử ít nhất 1, 2 và 4. Hy vọng điều này sẽ hữu ích!
fllo

ya chắc chắn, tôi đang thử nó. sẽ cho bạn biết kết quả sau này.
Steve,

1
Tôi có một kết quả. Câu trả lời của bạn hữu ích đối với tôi. Bạn thật tuyệt. Tôi đã làm những gì bạn từng nói. Cuối cùng tôi đã tạo và thêm một phương thức có tên là blogSelected. Dự án này có liên quan đến việc hiển thị một blog. Tôi nghĩ rằng thật sai lầm khi bỏ qua phương pháp đó. với tôi. cảm ơn, chúc một ngày tốt lành.
Steve

4

Tôi đã có những lỗi giống nhau. Tạo AVD mới với cấp API thích hợp đã giải quyết được vấn đề của tôi.


0

Tôi gặp phải vấn đề tương tự nhưng Khi tôi thay đổi giao diện của thiết bị AVD thành HVGA, nó đã hoạt động.


-2

bạn đã gọi ViewTreeObserver và không xóa nó.

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

-2

Tôi cũng gặp sự cố này, cũng đang chạy trên trình giả lập .. Thông báo tương tự cũng hiển thị trên Logcat, nhưng nó không ảnh hưởng đến chức năng của ứng dụng. Nhưng điều đó thật khó chịu và tôi không thích nhìn thấy lỗi trên nhật ký mà tôi không hiểu.

Dù sao, tôi đã loại bỏ thông báo bằng cách tăng RAM trên trình giả lập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.