2017-05-14 5 views
0

Ich habe im Grunde einen Startbildschirm mit dem törichten Code ... Ich bemerkte, dass wenn ich es in den meisten Android-Geräten läuft, funktioniert es aber nur in Samsung-Geräten (nicht abhängig von der Bildschirmgröße, ich getestet auf 4 Geräte) es einen Absturz mit diesem Fehler verursacht ...App stürzt nur auf Samsung Geräten ab

LogCat- https://gist.github.com/anonymous/2c06feb8643dc1381db39b64e0834942

Crash--

E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{inc.bs.ksit/inc.bs.ksit.Splash}: android.view.InflateException: Binary XML file line #20: Error inflating class android.widget.ImageView 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2114) 

Layout-Datei

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:background="@color/white" 
android:layout_width="match_parent" android:layout_height="match_parent"> 

<TextView 
    android:text="@string/app_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/imageView" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="48dp" 
    android:textSize="50sp" 
    android:id="@+id/textView13" 
    android:textStyle="bold" 
    android:textColor="@color/colorPrimaryDark" /> 

<ImageView 
    android:layout_width="170dp" 
    android:layout_height="200dp" 
    android:background="@drawable/images" 
    android:layout_marginTop="50dp" 
    android:id="@+id/imageView" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="Powered by BS " 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView13" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/textView14" /> 
</RelativeLayout> 

es funktioniert auf allen anderen Geräten, irgendwelche Ideen?

Splash Aktivität

public class Splash extends Activity { 

    // Splash screen timer 
    private static int SPLASH_TIME_OUT = 400; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     Log.d("tag","splash"); 
     new Handler().postDelayed(new Runnable() { 

      /* 
      * Showing splash screen with a timer. This will be useful when you 
      * want to show case your app logo/company 
      */ 

      @Override 
      public void run() { 
       // This method will be executed once the timer is over 
       // Start your app main activity 
       Intent i = new Intent(Splash.this, MainActivity.class); 
       startActivity(i); 

       // close this activity 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 
} 
+0

Code setzen und auch vollständiges Protokoll bitte –

+0

wird dies in einem ein paar Minuten ... Irgendein Formatierungsproblem kam, als ich es versuchte, also konnte ich nicht hochladen – Firewolf

+0

Ist die Bildgröße zu groß? Haben Sie versucht, gleiche App auf Samsung neuesten Handys (mit verbesserter Hardware) – Swarnveer

Antwort

0

aktualisieren: Werden Sie zu ImageView, bevor Sie es schaffen, also habe ich nur UI Elemente neu ordnen, und wenn Sie eine ID für eine Ansicht erklärt haben, für die Ex android:id="@+id/imageView" Sie sollten + Artikel auf der nächsten refrence, entfernen Sie so verwenden android:layout_below="@id/imageView" isntade wenn android:layout_below="@+id/imageView"

diese Check-out

012.351.
<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/white"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="170dp" 
     android:layout_height="200dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" 
     android:background="@drawable/images" /> 

    <TextView 
     android:id="@+id/textView13" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/imageView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="48dp" 
     android:text="@string/app_name" 
     android:textColor="@color/colorPrimaryDark" 
     android:textSize="50sp" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@+id/textView14" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textView13" 
     android:layout_centerHorizontal="true" 
     android:text="Powered by BS " /> 
</RelativeLayout> 
+0

Nein, stürzt immer noch – Firewolf

+0

Sie sollten sagen, warum Sie diesen Code hinzugefügt haben. – Swarnveer

+0

@Swarnveer hier ist die Erklärung –

0

Der Absturz kann nur auf das Bild zurückzuführen sein, das Sie gerade verwenden. Es muss einige seltsame Dimensionen geben. Um dies zu lösen, können Sie entweder ein anderes Bild verwenden, oder Sie können ein Bild Caching-Bibliothek Glide

Ein Beispielcode verwenden für Glide verwenden, ist

Display display = getWindowManager().getDefaultDisplay(); 
int height = display.getHeight(); 
int width = display.getWidth(); 
final RelativeLayout layout = (RelativeLayout) findViewById(R.id.searchCityGuide); 
Glide.with(this).load(R.drawable.exploref).asBitmap().into(new SimpleTarget<Bitmap>((int) width, (int) height) { 
@Override 
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
     Drawable drawable = new BitmapDrawable(resource); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
      layout.setBackground(drawable); 
      } 
     } 
    }); 
+0

wo exploref ist der Name des Bildes – Swarnveer

Verwandte Themen