作为标题,我在Display splashscreen & then AppIntro(First time launch) than mainactivity not working做这个基础,但是它不起作用,我无法理解logcat上的错误。目的是在启动画面活动后显示欢迎活动。该应用程序本身将工作,但只显示启动画面并直接跳转到登录活动而不是介绍幻灯片(欢迎活动)。如果有人能告诉我我在哪里做错了,我将不胜感激。
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="firebase.androidhive.info.firebaseauth">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".WelcomeActivity"
android:label="@string/title_activity_profile"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_profile"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".SignupActivity"
android:label="@string/title_activity_login"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".ResetPasswordActivity"
android:label="@string/title_activity_reset_password"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".LoginActivity"
android:theme="@style/AppTheme.NoActionBar" />
</application>
</manifest>
Splashscreen.java
package firebase.androidhive.info.firebaseauth;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {
private PrefManager prefManager;
private static int SPLASH_TIME_OUT = 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
prefManager = new PrefManager(this);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i;
if (prefManager.isFirstTimeLaunch()) {
i = new Intent(SplashScreen.this, WelcomeActivity.class);
prefManager.setFirstTimeLaunch(false);
} else {
i = new Intent(SplashScreen.this, LoginActivity.class);
}
startActivity(i);
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
}
}
Logcat错误
07-07 22:12:21.294 3464-3464/? E/cutils-trace: Error opening trace file: No such file or directory (2)
07-07 22:12:21.362 3464-3464/? E/memtrack: Couldn't load memtrack module (No such file or directory)
07-07 22:12:21.362 3464-3464/? E/android.os.Debug: failed to load memtrack module: -2
07-07 22:12:23.494 2706-2706/com.android.vending E/Finsky: [1] com.google.android.finsky.wear.bl.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
07-07 22:12:23.526 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/backups/system/.timestamp
07-07 22:12:23.550 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/backups/system/.timestamp
07-07 22:12:23.550 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.554 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.554 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.554 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.586 3569-3569/? E/cutils-trace: Error opening trace file: No such file or directory (2)
07-07 22:12:23.678 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.678 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.678 3569-3569/? E/memtrack: Couldn't load memtrack module (No such file or directory)
07-07 22:12:23.678 3569-3569/? E/android.os.Debug: failed to load memtrack module: -2
07-07 22:12:23.742 3615-3615/? E/dalvikvm: Could not find class 'javax.net.ssl.SNIServerName', referenced from method upo.a
07-07 22:12:23.742 3615-3615/? E/dalvikvm: Could not find class 'com.google.android.gms.org.conscrypt.OpenSSLExtendedSessionImpl', referenced from method upo.a
07-07 22:12:23.742 3615-3615/? E/dalvikvm: Could not find class 'com.google.android.gms.org.conscrypt.OpenSSLExtendedSessionImpl', referenced from method upo.a
07-07 22:12:23.742 3615-3615/? E/dalvikvm: Could not find class 'javax.net.ssl.SNIHostName', referenced from method upo.b
07-07 22:12:23.750 3615-3615/? E/dalvikvm: Could not find class 'javax.net.ssl.SNIHostName', referenced from method upo.b
07-07 22:12:23.926 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.938 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.938 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.938 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.938 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:23.938 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:24.034 3663-3698/? E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/firebase.androidhive.info.firebaseauth-1.apk"],nativeLibraryDirectories=[/data/app-lib/firebase.androidhive.info.firebaseauth-1, /system/lib]]
07-07 22:12:24.118 3663-3698/? E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/firebase.androidhive.info.firebaseauth-1.apk"],nativeLibraryDirectories=[/data/app-lib/firebase.androidhive.info.firebaseauth-1, /system/lib]]
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp.tmp
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: 重复删除命令
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp
07-07 22:12:24.154 1297-3620/com.estrongs.android.pop E/Cataloger: syncFile:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp
07-07 22:12:24.158 1297-3620/com.estrongs.android.pop E/Cataloger: need not sync path:/storage/emulated/0/Android/data/com.estrongs.android.pop/recomm/setting.download.tmp
07-07 22:12:24.222 3615-3615/? E/dalvikvm: Could not find class 'iwj', referenced from method iwi.a
07-07 22:12:24.574 3663-3663/firebase.androidhive.info.firebaseauth E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from GradienCache
07-07 22:12:24.578 3663-3663/firebase.androidhive.info.firebaseauth E/OpenGLRenderer: MAX_TEXTURE_SIZE: 16384
07-07 22:12:24.586 3663-3663/firebase.androidhive.info.firebaseauth E/OpenGLRenderer: Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
07-07 22:12:24.586 3663-3663/firebase.androidhive.info.firebaseauth E/OpenGLRenderer: MAX_TEXTURE_SIZE: 16384
07-07 22:12:24.882 3615-3656/com.google.android.gms E/dalvikvm: Could not find class 'android.app.job.JobScheduler', referenced from method szn.A
07-07 22:12:25.598 3663-3663/firebase.androidhive.info.firebaseauth E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
07-07 22:12:25.902 3615-3806/com.google.android.gms E/Icing: city name for address is empty or is not existed.
07-07 22:12:26.462 3615-3806/com.google.android.gms E/dalvikvm: Could not find class 'android.app.usage.UsageStatsManager', referenced from method qys.a
07-07 22:12:35.178 3663-3698/firebase.androidhive.info.firebaseauth E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/firebase.androidhive.info.firebaseauth-1.apk"],nativeLibraryDirectories=[/data/app-lib/firebase.androidhive.info.firebaseauth-1, /system/lib]]
PrefManager.java
public class PrefManager {
SharedPreferences pref;
SharedPreferences.Editor editor;
Context _context;
// shared pref mode
int PRIVATE_MODE = 0;
// Shared preferences file name
private static final String PREF_NAME = "androidhive-welcome";
private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch";
public PrefManager(Context context) {
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void setFirstTimeLaunch(boolean isFirstTime) {
editor.putBoolean(IS_FIRST_TIME_LAUNCH, isFirstTime);
editor.commit();
}
public boolean isFirstTimeLaunch() {
return pref.getBoolean(IS_FIRST_TIME_LAUNCH, true);
}
}