W czasie wykonywania pojawia się błąd Couldn't load memtrack module (No such file or directory) failed to load memtrack module: -2
.
Błąd 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
Oczywisty:
<?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>
Wynik:
Wreszcie wyświetla pusty ekran.
Czy ktoś wie, jak rozwiązać te błędy?
android
logcat
stack-trace
Steve
źródło
źródło
Odpowiedzi:
Ten błąd, jak możesz przeczytać w pytaniu, do którego link znajduje się w komentarzach powyżej , powoduje:
Poniższy krok 1 powinien rozwiązać ten problem. Jak widzę, w swoim manifeście masz dziwne nazwy pakietów:
<manifest>
tagu,<application>
<activity>
Jak wiesz, te rzeczy nie blokują wyświetlania aplikacji. Ale myślę:
Aby lepiej korzystać z kilku rzeczy, można to rozwiązać, postępując zgodnie z tymi wskazówkami:
1. Wypróbuj inny emulator ...
A nawet prawdziwe urządzenie!
memtrack module
Błąd wydaje się związany z emulatora. Więc zmień to naRun configuration
, nie zapomnij zmienićAPI
też.2. Dzienniki błędów OpenGL
W przypadku
OpenGl
błędów, ponieważcalled unimplemented OpenGL ES API
nie jest to błąd, ale oświadczenie! Powinieneś włączyć to w swoim manifeście (możesz przeczytać tę odpowiedź, jeśli używasz GLSurfaceView w środkuHomeActivity.java
, może ci to pomóc):<uses-feature android:glEsVersion="0x00020000"></uses-feature> // or <uses-feature android:glEsVersion="0x00010001" android:required="true" />
3. Użyj tego samego opakowania
Nie deklaruj różnych nazw pakietów do wszystkich tagów w
Manifest
. Powinieneś mieć taki sam dlaManifest
,Activities
itd Coś Prawo to wygląda:<!-- 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. Nie zgub się z układami:
Powinieneś ustawić inny układ dla,
SplashScreenActivity.java
ponieważ nie używasz jakoTabHost
ekranu powitalnego i nie jest to bezpieczny sposób na wykorzystanie zasobów. Zadeklaruj konkretny układ z czymś innym, na przykład nazwą aplikacji i 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" />
Unikaj używania układu w działaniach, które go nie używają.
5. Ekran powitalny?
Wreszcie, nie rozumiem jasno celu twojego
SplashScreenActivity
. Ustawia widok treści i bezpośrednio kończy. To jest bezużyteczne.Ponieważ jego nazwa to Ekran powitalny , zakładam, że chcesz wyświetlić ekran przed uruchomieniem pliku
HomeActivity
. Dlatego powinieneś to zrobić i nie używaćTabHost
układu;) :// 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(); } }
Mam nadzieję, że tego rodzaju wskazówki pomogą Ci osiągnąć to, czego chcesz.
Jeśli tak nie jest, daj mi znać, jak mogę Ci pomóc.
źródło
TabHost in layout_home.xml
Miałem ten sam błąd. Utworzenie nowego AVD z odpowiednim poziomem API rozwiązało mój problem.
źródło
Napotkałem ten sam problem, ale kiedy zmieniłem skórę urządzenia AVD na HVGA, zadziałało.
źródło
czy wywołałeś ViewTreeObserver i nie usunąłeś go.
mEtEnterlive.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { // do nothing here can cause such problem });
źródło
Miałem też ten problem, również działając na emulatorze. Ta sama wiadomość pojawiała się na Logcat, ale nie wpływała na funkcjonalność aplikacji. Ale to było denerwujące i nie lubię widzieć błędów w dzienniku, których nie rozumiem.
W każdym razie pozbyłem się komunikatu zwiększając pamięć RAM na emulatorze.
źródło