3

これは私のbuild.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
...

my CustomEditText( that extends TintEditText) 内および that を使用するすべての Activity 内CustomEditText

インポートはエラーをスローせず、Class:

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


どうなり得るか?

更新: internal の代わりにianhanniballakeの提案 を使用すると、コンパイル時エラーが解決され、この質問に答えますが、実行時エラーが発生しています:AppCompatEditTextTintEditText

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.
私が述べたように、22.2 .0 を追加または更新するまで、これはかなりうまく機能'com.android.support:design:22.2.0'ますappcompat-v7:22.0.0。を使いたいだけですが、そうしないと思います...TabLayout

4

1 に答える 1