Ответ 1
Эта ошибка, как вы можете прочитать на вопрос, связанный с комментариями выше, будет выглядеть следующим образом:
"[...] проблема с загрузкой {some} аппаратного модуля. Это может быть связано с поддержкой GPU, обработкой sdcard, в основном чем угодно."
Следующий шаг 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
, это не ошибка, а выражение! Вы должны включить его в свой манифест (вы можете прочитать этот ответ, если вы используете 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();
}
}
Я надеюсь, что такие советы помогут вам достичь того, чего вы хотите. Если это не так, дайте мне знать, как я могу вам помочь.