2015-06-15 134 views
3

這是我build.gradle文件:支持Android的gradle設計錯誤

... 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile 'com.android.support:cardview-v7:21.0.+' 
    ... 
} 

之前,我補充一下:

compile 'com.android.support:design:22.2.0' 

現在,當我建立或重建我的項目(我已同步gradle幾次)我得到這個錯誤:

.../utils/CustomEditText.java 
Error:(6, 42) Gradle: error: cannot find symbol class TintEditText 
Error:(14, 35) Gradle: error: cannot find symbol class TintEditText 
Error:(37, 8) Gradle: error: cannot find symbol method isInEditMode() 
Error:(57, 3) Gradle: error: cannot find symbol method setTypeface(Typeface) 
Error:(65, 5) Gradle: error: method does not override or implement a method from a supertype 
Error:(67, 23) Gradle: error: cannot find symbol variable super 
... 

在我的CustomEditText(即延伸TintEditText)以及所有使用CustomEditText的活動。

導入未拋出任何錯誤,也沒有Class:

import android.support.v7.internal.widget.TintEditText; 


這可能是?

UPDATE: 使用ianhanniballake建議,AppCompatEditText代替內部TintEditText,解決了編譯時錯誤和回答這個問題,但現在我有一個運行時錯誤:

java.lang.IllegalArgumentException: AppCompat does not support the current theme features 

我已經看到了一些與此相關的問題,並提到的解決方案是這樣的:

<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="windowNoTitle">true</item> 
     <item name="windowActionBar">false</item> 
     ... 
</style> 

但我不想休閒這種方法,因爲我有一些Activities使用ActionBar和其他人沒有。我的風格是:

<style name="MyTheme" parent="Theme.AppCompat.Light"> 
     <item name="colorControlNormal">@color/txt_light_grey</item> 
     <item name="colorControlActivated">@color/default_orange</item> 
     <item name="colorControlHighlight">@color/txt_light_grey</item> 
    </style> 

    <style name="MyTheme.ActionBar.Orange" parent="MyTheme"> 
     <item name="windowActionBarOverlay">false</item> 
     <item name="colorPrimary">@color/default_orange</item> 
    </style> 

    <style name="MyTheme.FullScreen" parent="MyTheme"> 
     <item name="windowActionBar">false</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowFullscreen">true</item> 
     <item name="android:windowContentOverlay">@null</item> 
    </style> 

我的基地裏面Activity我做的:

getWindow().requestFeature(mActionBarView != null ? Window.FEATURE_ACTION_BAR : Window.FEATURE_NO_TITLE); 

要啓用或禁用ActionBar
正如我所說,這工作相當好,直到我加'com.android.support:design:22.2.0'或更新appcompat-v7:22.0.0至22. .0。我只想使用TabLayout,但我想我不會...

+0

我更新到最新的android設計庫後,我也得到了這個錯誤..我剛剛更改爲Edittext。 – Psypher

回答

5

從版本AppCompat 22.1.0開始,您應該使用AppCompatEditText而不是內部TintEditText

+0

AppcompatEdittext和普通Edittext之間有什麼區別..我看不出它們之間的任何區別 – Psypher

+0

@Ranjith - 正如文檔中提到的那樣,以及我在這個問題的答案中鏈接到的博客帖子,'EditText'自動被替換當你使用'AppCompatActivity'或等價物時使用'AppCompatEditText',所以你不會看到區別 - 'AppCompatEditText'只有在構建'EditText'的自定義子類,但想要AppCompat提供的着色時纔有用。 – ianhanniballake

+0

謝謝!!!!!!! – Psypher