2013-01-22 10 views
5

Abbiamo lanciato l'app sul Market oggi - Nomad. Ricevo segnalazioni relative all'arresto anomalo dell'app su HTC e Sony Ericsson Phones. Ho ricevuto il seguente rapporto del registro da uno degli utenti USER.L'app Android si blocca su HTC e Sony Ericsson Phone

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.m7.nomad/com.m7.nomad.SplashActivity}: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x3 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
at android.app.ActivityThread.access$600(ActivityThread.java:123) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4424) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x3 
at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463) 
at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5459) 
at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1776) 
at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1700) 
at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:56) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:741) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2707) 
at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2767) 
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:247) 
at android.app.Activity.setContentView(Activity.java:1835) 
at com.m7.nomad.SplashActivity.onCreate(SplashActivity.java:46) 
at android.app.Activity.performCreate(Activity.java:4465) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
... 11 more 

Non riesco a capire perché succede.

SplashActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = this; 

    // Remove title bar 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    setContentView(R.layout.activity_splash); 

    // Shared Preferences 
    settings = getSharedPreferences(SETTINGS_PREFS, 0); 

    configRun = settings.getInt("database_version", 0); 

    this.assetManager = this.getAssets(); 


} 

Linea 46 punti per setContentView(R.layout.activity_splash);

activity_splash.java

<?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/primary_color" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:contentDescription="Splash Screen" 
     android:gravity="center" 
     android:src="@drawable/splash_logo" /> 

</RelativeLayout> 
+2

Si potrebbe voler condividere del codice ... Soprattutto la parte che si è bloccata. Altrimenti la cosa più sensata che potremmo dire è: 'Hai un bug' – Veger

+0

Sembra che ci sia qualcosa di sbagliato nel layout di 'SplashActivity'. Per favore pubblica il file 'xml' e il codice da' com.m7.nomad.SplashActivity.onCreate (SplashActivity.java:46) 'linea 46 di tua attività – Evos

+0

@Veger hanno aggiunto il codice :) –

risposta

1

Utilizzare questo nel layout spruzzata

<?xml version="1.0" encoding="utf-8"?> 
<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#ffe5492a" 
android:contentDescription="Splash Screen" 
android:scaleType="fitCenter" 
android:src="@drawable/splash_logo" > 

+0

perché ca io uso un layout? Ho bisogno di riempire un colore di sfondo –

+0

Ho riempito, per favore provalo ... –

+0

puoi usare 'android: background =" @ color/primary_color "' se vuoi, BTW stesso colore. :) –

1

Applicare questo xml nel progetto e vedere cosa succede :)

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

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:contentDescription="Splash Screen" 
     android:gravity="center" 
     android:src="@drawable/splash_logo" /> 

</RelativeLayout> 

Commenta questa linea ::

context = this; 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

dannazione non avere un telefono htc .. farlo testare: P riporterà: D –

+0

@AndroidLeaner, no ancora non funziona –

+0

@HarshaMV controlla la mia risposta aggiornata :) – AndroidLearner

2

La causa del tuo incidente è probabilmente nascosto in vostri stili. Probabilmente contiene un attributo che fa riferimento a una dimensione contenuta in Android SDK, mentre stai eseguendo l'applicazione su una versione precedente dell'SDK che non contiene quella dimensione.

In this example, l'autore ha utilizzato il seguente attributo:

android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" 

Tuttavia, come la risposta accettata sottolinea il listPreferredItemPaddingLeft entry in android.R.attr è disponibile solo dal livello SDK 14 in poi.

Rimuovere le voci offensive, sostituirle o separare i file di risorse in modo che rispettino il livello dell'SDK. Ad esempio, è possibile fornire uno stile in res/values-14 e un altro che omette tali voci dalla versione in res/values.

+0

rimuoverli ha funzionato bene e non ha modificato nulla, quindi per ora lo abbiamo fatto. grazie per aver indicato come sistemare lo stesso utilizzando il valore 14. lo proverò e ti farò sapere: D –

Problemi correlati