2015-03-25 3 views
1

Я новичок в разработке java и android. Я буду использовать Android Saripaar v2 (thx at Ragunath Jawahar) для подтверждения.android-saripaar v2 messageResId должен быть постоянным

Я использую Android Studio.

На новом чистом проекте андроида без каких-либо других модулей он работает очень хорошо.

Но на моих мультимодулях Приложение У меня есть проблемы с сообщением messageResId в аннотации. (Значение атрибута должно быть постоянным)

Вот мой код:

build.gradle (Module: приложение)

... 
// workaround for "duplicate files during packaging of APK" issue 
// see https://groups.google.com/d/msg/adt-dev/bl5Rc4Szpzg/wC8cylTWuIEJ 
packagingOptions { 
    exclude 'META-INF/ASL2.0' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/NOTICE' 
} 

allprojects { 
    repositories { 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     maven { url "http://files.couchbase.com/maven2/" } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'com.android.support:support-v4:21.0.3' 
    compile project(':auth') 
} 
... 

build.gradle (модуль: авт)

dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:appcompat-v7:21.0.3' 
     compile 'com.facebook.android:facebook-android-sdk:3.21.1' 
     compile 'com.google.android.gms:play-services:6.5.87' 
     compile 'com.mobsandgeeks:android-saripaar:2.0-SNAPSHOT' 
     compile project (':other_api_module') 
} 

auth/ja в /.../ SignInFragment.java ОШИБКИ В этом файле

public class SignInFragment extends Fragment implements View.OnClickListener, View.OnFocusChangeListener, Validator.ValidationListener{ 

String TAG = SignInFragment.class.getName(); 
private ISignInFragment iSignInFragment; 

@Email(messageResId = R.string.editTextEmailValidationError) //ERROR: Attribute (R.string.editTextEmailValidationError) value must be constant 
private EditText editTextEmail; 
private EditText editTextPassword; 
static public String EMAIL = "email"; 
+0

Привет, вы используете Saripaar в проекте библиотеки? –

+0

Hallo, No for application. Я буду использовать его в модуле auth для проверки полей editText. – auerc89

+0

Является ли модуль auth библиотечным проектом? –

ответ

3

Вы не можете использовать аннотации, которые требуют Android идентификаторов ресурсов для их атрибутов в библиотечных модулях. Вы можете использовать их только с помощью модулей приложений.

Идентификаторы ресурсов в библиотечных модулях не являются окончательными. С другой стороны, идентификаторы ресурсов в прикладных модулях являются окончательными. Аннотации Java принимают только константы (конечные переменные) для значений атрибутов.

Смежные вопросы