web-dev-qa-db-ja.com

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

マニフェスト:

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

出力:

最後に、空白の画面が表示されます。

enter image description here

誰もがこれらのエラーを解決する方法を知っていますか?

73
Stephen

上記のコメントにリンクされている質問 を読むとわかるように、このエラーは次のようになります。

「[...] {some}ハードウェアモジュールのロードに問題があります。これは、GPUサポート、SDカード処理、基本的には何かに関係している可能性があります。」

次の手順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のように、エラーではなくステートメントです!マニフェストで有効にする必要があります( この回答 を読むことができます。HomeActivity.Java内でGLSurfaceViewを使用している場合、役立つかもしれません)。

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

3.同じパッケージを使用する

Manifestのすべてのタグに異なるパッケージ名を宣言しないでください。 ManifestActivitiesなどについても同じようにする必要があります。次のようなものは正しく見えます。

<!-- 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.レイアウトで迷子にしないでください:

スプラッシュ画面にTabHostを使用しておらず、これは安全なリソース方法ではないため、SplashScreenActivity.Javaに別のレイアウトを設定する必要があります。アプリ名やロゴなど、何か異なるもので特定のレイアウトを宣言します。

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

この種のヒントが、あなたが望むものを達成するのに役立つことを願っています。
そうでない場合は、どのようにお手伝いできるか教えてください。

44
Fllo

同じエラーが発生しました。適切なAPIレベルで新しいAVDを作成すると、問題が解決しました。

4
aysenur

私は同じ問題に直面しましたが、AVDデバイスのスキンをHVGAに変更すると、機能しました。

1
Ray

ADB統合を有効にすると、問題が解決しました。

メニュー内:Tools -> Android -> Enable ADB Integration

enter image description here

1

Xamarinを使用している人向け

Sdkアセンブリへのリンクを設定するだけでうまくいくことがわかりました:プロジェクト->プロパティ-> Androidオプション->リンカタブ->リンク:

enter image description here

1
Pierre