2017-07-03 5 views
0

Ich habe die YouTubePlayerView-Bibliothek in unsere App integriert und funktioniert einwandfrei, aber wenn ich die App minimiere, stürzt sie ab oder Sie können sagen, wenn die App in den Hintergrund tritt, stürzt sie ab. HierAktivitätsabsturz mit YouTubePlayerView, wenn App minimiert wird

ist das Crash-Protokoll:

java.lang.NoClassDefFoundError: rt 
     at rs.<clinit>(SourceFile:17) 
     at android.support.v7.widget.RecyclerView.onSaveInstanceState(SourceFile:201) 
     at android.view.View.dispatchSaveInstanceState(View.java:12985) 
     at android.view.ViewGroup.dispatchFreezeSelfOnly(ViewGroup.java:2643) 
     at android.support.v7.widget.RecyclerView.dispatchSaveInstanceState(SourceFile:220) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
     at android.view.View.saveHierarchyState(View.java:12968) 
     at com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1705) 
     at android.app.Activity.onSaveInstanceState(Activity.java:1277) 
     at com.google.android.youtube.player.YouTubeBaseActivity.onSaveInstanceState(Unknown Source) 
     at android.app.Activity.performSaveInstanceState(Activity.java:1226) 
     at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223) 
     at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3342) 
     at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3401) 
     at android.app.ActivityThread.access$1100(ActivityThread.java:139) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1320) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:149) 
     at android.app.ActivityThread.main(ActivityThread.java:5257) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
     at dalvik.system.NativeStart.main(Native Method) 
07-03 13:02:44.608 31106-31174/com.seeken D/FA: Logging event (FE): _ae, Bundle[{_o=crash, timestamp=1499067164609, fatal=1}] 
07-03 13:02:44.808 31106-31106/com.seeken I/dalvikvm: Could not find method java.util.Locale.toLanguageTag, referenced from method bme.a 
07-03 13:02:44.808 31106-31106/com.seeken W/dalvikvm: VFY: unable to resolve virtual method 10275: Ljava/util/Locale;.toLanguageTag()Ljava/lang/String; 
07-03 13:02:44.808 31106-31106/com.seeken D/dalvikvm: VFY: replacing opcode 0x6e at 0x00e4 
07-03 13:02:44.848 31106-31106/com.seeken D/dalvikvm: GC_FOR_ALLOC freed 3454K, 15% free 20646K/24152K, paused 25ms, total 25ms 
07-03 13:02:44.868 31106-31106/com.seeken E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.seeken, PID: 31106 
java.lang.NoClassDefFoundError: rt 
    at rs.<clinit>(SourceFile:17) 
    at android.support.v7.widget.RecyclerView.onSaveInstanceState(SourceFile:201) 
    at android.view.View.dispatchSaveInstanceState(View.java:12985) 
    at android.view.ViewGroup.dispatchFreezeSelfOnly(ViewGroup.java:2643) 
    at android.support.v7.widget.RecyclerView.dispatchSaveInstanceState(SourceFile:220) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2629) 
    at android.view.View.saveHierarchyState(View.java:12968) 
    at com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1705) 
    at android.app.Activity.onSaveInstanceState(Activity.java:1277) 
    at com.google.android.youtube.player.YouTubeBaseActivity.onSaveInstanceState(Unknown Source) 
    at android.app.Activity.performSaveInstanceState(Activity.java:1226) 
    at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223) 
    at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3342) 
    at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3401) 
    at android.app.ActivityThread.access$1100(ActivityThread.java:139) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1320) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:149) 
    at android.app.ActivityThread.main(ActivityThread.java:5257) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 
    at dalvik.system.NativeStart.main(Native Method) 

Hier ist mein Manifest:

<activity android:name=".activities.VideoActivity" 
      android:configChanges="orientation|screenLayout|screenSize"/> 

Antwort

0

Ich denke, Ihre Anwendung abstürzt, wenn aufgrund einer Konfiguration Neustart ändert

Sie die deaktivieren automatische Aktivitätserholung für Orientierungsänderungen, und handle es selbst.

, das zu tun, fügen Sie

android:configChanges="orientation|screenLayout|screenSize" 

für weitere Informationen runtime-changes

oder diesen Code in Ihrer Aktivität hinzufügen

@Nullable 
protected YouTubePlayer mUtPlayer; 

@Override 
public void onSaveInstanceState(Bundle outState) { 
/* release ut when home button pressed. */ 
if (mUtPlayer != null) { 
    mUtPlayer.release(); 
} 
mUtPlayer = null; 
super.onSaveInstanceState(outState); 
} 

@Override 
public void onStop() { 
/* release ut when go to other fragment or back pressed */ 
if (mUtPlayer != null) { 
    mUtPlayer.release(); 
} 
mUtPlayer = null; 
super.onStop(); 
} 
+0

Ich habe bereits hinzugefügt 'android: configChanges = "Orientierung | Bildschirmdarstellung | Bildschirmgröße"' diesen Code in einem offenkundigen, aber immer noch Problem gegenüber. Bitte prüfe. –

1

Mit diesem SO post beziehen, die eine gewisse Abhilfe vorgeschlagen, die Macht Hilfe:

  • Freigabe YouTubePlayer bei onSavedInstanceState und onStop.
@Nullable 
protected YouTubePlayer mUtPlayer; 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    /* release ut when home button pressed. */ 
    if (mUtPlayer != null) { 
     mUtPlayer.release(); 
    } 
    mUtPlayer = null; 
    super.onSaveInstanceState(outState); 
} 

@Override 
public void onStop() { 
    /* release ut when go to other fragment or back pressed */ 
    if (mUtPlayer != null) { 
     mUtPlayer.release(); 
    } 
    mUtPlayer = null; 
    super.onStop(); 
} 
  • Wenn es nicht funktioniert, fügen Sie einfach die gleichen Linien in statt in onSaveInstanceState und onStop und initialisieren die YouTubePlayerFragment in onResume statt in onCreate so werde es verfügbar sein, wenn die Aktivität im Vordergrund ist und wenn die App in den Hintergrund versetzt wird.

Weitere Referenz:

Verwandte Themen