android-saripaar v2 messageResId должен быть постоянным
Я новичок в разработке Java и Android. Я буду использовать Android Saripaar v2 (спасибо Ragunath Jawahar) для проверки.
Я использую Android Studio.
На новом чистом проекте Android без других модулей это работает очень хорошо.
Но в моем многомодульном приложении у меня есть проблемы со свойством messageResId в аннотации. (Значение атрибута должно быть постоянным)
Вот мой код:
build.gradle (Модуль: приложение)
...
// 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 / java /.../ 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";
1 ответ
Вы не можете использовать аннотации, для которых требуются идентификаторы ресурсов Android для их атрибутов в библиотечных модулях. Вы можете использовать их только с модулями приложения.
Идентификаторы ресурсов в библиотечных модулях не являются окончательными. С другой стороны, идентификаторы ресурсов в модулях приложения являются окончательными. Java-аннотации принимают только константы (конечные переменные) для значений атрибутов.