2016-05-01 19 views
1

Ich habe ein Layout wie folgt. Hier setze ich die textColor auf rot.android - textView textColor nicht wirksam auf Gerät

Wenn ich dies auf Emulator ausführen, funktioniert alles wie erwartet. Wenn ich jedoch auf dem Gerät laufe, ist textColor weiß. Früher hat es am Gerät funktioniert.

Ich habe viel Code-Refactoring mit Emulator. Ich könnte etwas geändert haben, das zu diesem Problem führen könnte. Ich habe gehofft, dass jemand anderes auf ein ähnliches Problem gestoßen ist.

 <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="EXAMPLE" 
      android:textColor="@color/red" 
      android:textSize="60sp" /> 

Was könnte das Problem sein?

android { 
    dexOptions { 
     javaMaxHeapSize "6g" 
    } 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
    } 
    defaultConfig { 
     applicationId "someID" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    productFlavors { 
     dev { 
      minSdkVersion 15 
     } 
     prod { 
      minSdkVersion 15 
     } 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 
+0

Welche Versionen von Android sind beide laufen auf dem Gerät und Emulator? Dies kann auftreten, wenn Sie unterschiedliche Layout-XML-Dateien für unterschiedliche Android-APIs haben. Wenn das physische Gerät und der Emulator unterschiedliche API-Ebenen ausführen, als die TextView im XML-Layout, die auf diese spezifische Android-Version abzielt, ist dies nicht korrekt eingestellt, während das im Emulator geladene Layout wie beschrieben geschrieben wird. –

+0

Mein Emulator ist Android 6.0 api 23. Ich habe ein GalaxyS6 als Gerät, das nicht api 23 sein kann wie sein Android 5.x. Ich habe den Beitrag mit meiner Gradle-Konfiguration aktualisiert. Bitte geben Sie Hinweise an, um dies zu beheben. – GJain

+0

Ist die TextView in einer XML-Layoutdatei, von der Sie mehrere Versionen haben? Sehen Sie [Screenshot] (http://imgur.com/MjklfaB), um zu sehen, wovon ich rede. –

Antwort

1

Ich löste dieses Problem, indem ich alle Build-Verzeichnisse bereinigte und säubere/rebuild.

Ich habe auch Productflavors/devDebug von .gradle entfernt. Das muss das Problem verursacht haben, wie ich es für minSDKVersion konfiguriert wurde 15, und ich habe versucht, am 22.

Von Android docs auszuführen:

android { 
    productFlavors { 
     // Define separate dev and prod product flavors. 
     dev { 
      // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin 
      // to pre-dex each module and produce an APK that can be tested on 
      // Android Lollipop without time consuming dex merging processes. 
      minSdkVersion 21 
     } 
     prod { 
      // The actual minSdkVersion for the application. 
      minSdkVersion 14 
     } 
    } 
      ... 
    buildTypes { 
     release { 
      runProguard true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
               'proguard-rules.pro' 
     } 
    } 
} 
Verwandte Themen