This error, as you can read on the question linked in comments above, results to be:
“[…] a problem with loading {some} hardware module. This could be something to do with GPU support, sdcard handling, basically anything.”
The step 1 below should resolve this problem. Also as I can see, you have some strange package names inside your manifest:
- package=”com.example.hive” in
<manifest>
tag, - android:name=”com.sit.gems.app.GemsApplication” for
<application>
- and android:name=”com.sit.gems.activity” in
<activity>
As you know, these things do not prevent your app to be displayed. But I think:
the
Couldn't load memtrack module error
could occur because of emulators configurations problems and, because your project contains many organization problems, it might help to give a fresh redesign.
For better using and with few things, this can be resolved by following these tips:
1. Try an other emulator…
And even a real device! The memtrack module
error seems related to your emulator. So change it into Run configuration
, don’t forget to change the API
too.
2. OpenGL error logs
For OpenGl
errors, as called unimplemented OpenGL ES API
, it’s not an error but a statement! You should enable it in your manifest (you can read this answer if you’re using GLSurfaceView inside HomeActivity.java
, it might help you):
<uses-feature android:glEsVersion="0x00020000"></uses-feature> // or <uses-feature android:glEsVersion="0x00010001" android:required="true" />
3. Use the same package
Don’t declare different package names to all the tags in Manifest
. You should have the same for Manifest
, Activities
, etc. Something like this looks right:
<!-- 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. Don’t get lost with layouts:
You should set another layout for SplashScreenActivity.java
because you’re not using the TabHost
for the splash screen and this is not a safe resource way. Declare a specific layout with something different, like the app name and the 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" />
Avoid using a layout in activities which don’t use it.
5. Splash Screen?
Finally, I don’t understand clearly the purpose of your SplashScreenActivity
. It sets a content view and directly finish. This is useless.
As its name is Splash Screen, I assume that you want to display a screen before launching your HomeActivity
. Therefore, you should do this and don’t use the TabHost
layout 😉:
// 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(); } }
I hope this kind of tips help you to achieve what you want.
If it’s not the case, let me know how can I help you.