2016-11-08 4 views
0

Ich möchte mit der Ladeansicht starten, aber immer abgestürzt, wenn ich es öffne, wenn die Hauptaktivität in AndroidManifiest.xml nicht MainActivity ist. Auf dem Emulator ist in Ordnung, aber das Problem ist nur bei der Installation der apk in einem Telefon. Irgendeine Hilfe?Android App abgestürzt, wenn die Hauptaktivität nicht MainActivity

AndroidManifiest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.daniel.jaentodayapp"> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppTheme.NoActionBar"> 
    </activity> 
    <activity 
     android:name=".LoadingScreen" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

LoadingScreen

public class LoadingScreen extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_loading_screen); 
    new Thread(new Runnable() { 
     public void run() { 
      try { 
       Thread.sleep(3000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } finally { 
       Intent intent = new Intent(LoadingScreen.this, MainActivity.class); 
       startActivity(intent); 
      } 
     } 
    }).start(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    finish(); 
}} 

Layout-Ladebildschirm

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_loading_screen" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.example.daniel.jaentodayapp.LoadingScreen"> 
<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/pcarga"></LinearLayout></RelativeLayout> 

Dies ist der Fehler:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.daniel.jaentodayapp, PID: 18967 
       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.daniel.jaentodayapp/com.example.daniel.jaentodayapp.LoadingScreen}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class <unknown> 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
        at android.app.ActivityThread.access$900(ActivityThread.java:150) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5417) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
       Caused by: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class <unknown> 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
        at com.example.daniel.jaentodayapp.LoadingScreen.onCreate(LoadingScreen.java:13) 
        at android.app.Activity.performCreate(Activity.java:6285) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
        at android.app.ActivityThread.access$900(ActivityThread.java:150)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:5417)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
       Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class <unknown> 
        at android.view.LayoutInflater.createView(LayoutInflater.java:645) 
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
        at com.example.daniel.jaentodayapp.LoadingScreen.onCreate(LoadingScreen.java:13)  
        at android.app.Activity.performCreate(Activity.java:6285)  
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)  
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
        at android.app.ActivityThread.access$900(ActivityThread.java:150)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:5417)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
       Caused by: java.lang.reflect.InvocationTargetException 
        at java.lang.reflect.Constructor.newInstance(Native Method) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)  
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694)  
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762)  
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
        at com.example.daniel.jaentodayapp.LoadingScreen.onCreate(LoadingScreen.java:13)  
        at android.app.Activity.performCreate(Activity.java:6285)  
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)  
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
        at android.app.ActivityThread.access$900(ActivityThread.java:150)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:5417)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
       Caused by: java.lang.OutOfMemoryError: Failed to allocate a 255322380 byte allocation with 12571568 free bytes and 126MB until OOM 
        at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
        at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
        at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) 
        at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) 
        at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080) 
        at android.content.res.Resources.loadDrawableForCookie(Resources.java:2635) 
        at android.content.res.Resources.loadDrawable(Resources.java:2540) 
        at android.content.res.TypedArray.getDrawable(TypedArray.java:870) 
        at android.view.View.<init>(View.java:3955) 
        at android.view.ViewGroup.<init>(ViewGroup.java:574) 
        at android.widget.LinearLayout.<init>(LinearLayout.java:203) 
        at android.widget.LinearLayout.<init>(LinearLayout.java:199) 
        at android.widget.LinearLayout.<init>(LinearLayout.java:195) 
        at java.lang.reflect.Constructor.newInstance(Native Method)  
        at android.view.LayoutInflater.createView(LayoutInflater.java:619)  
        at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)  
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:694)  
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:762)  
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)  
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
        at com.example.daniel.jaentodayapp.LoadingScreen.onCreate(LoadingScreen.java:13)  
        at android.app.Activity.performCreate(Activity.java:6285)  
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)  
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
        at android.app.ActivityThread.access$900(ActivityThread.java:150)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:5417)  
        at java.lang.reflect.Method.invoke(Native Method)  

Antwort

0

Sie können startActivity() nur aus dem Hauptthread aufrufen. Wenn Sie wollen, dass der Anruf von einem Runnable, um eine Handler verwenden Wenn Sie .run() statt .start() der runnable nennen würde auf dem anrufenden Thread ausgeführt werden

0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_loading_screen); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Intent intent = new Intent(LoadingScreen.this, MainActivity.class); 
    startActivity(intent); 
    finish(); 
} 

Never put wait timer in loading screen unless necessary, call the MainActvity in onResume as by the time onResume is called, Sytem finishes the operations to load the App.

Es gibt viele Beispiele auf Stack-Überlauf auf, wie zu implementieren Splash Screen (Ladebildschirm) in guter Weise. mittlerweile können Sie diese Lösung verwenden

0

Sie können versuchen:

private final Handler mHandler = new Handler(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_loading_screen); 

    mHandler.postDelayed(moveToMain, 3000); 
} 

private final Runnable moveToMain = new Runnable() { 
    public void run() { 
     startActivity(new Intent(LoadingScreen.this, MainActivity.class)); 
     finish(); 
    } 
}; 
0
new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    try { 
     Intent intent = new Intent(LoadingScreen.this,MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 
     }, 3000); 

bitte Ihre Aktivität beenden, während Sie Ihre neue Tätigkeit beginnen. statt finishing onpause() Dies ist ein Problem beim Ausführen eines UIThread auf Haupt-Thread. hoffe, dass die Frage beantworten.
Wenn Sie Ihren Stacktrace oder Ihr Fehlerprotokoll einfügen oder anzeigen, wird es einfacher, eine Lösung dafür zu finden.

Dank

Verwandte Themen