Итак, я пытаюсь создать приложение Android и связать его с Cognito, я следую этому учебнику (это третья часть, где у меня начались проблемы), и все у него работает, но я получил эту ошибку:
E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.homing, PID: 22346 java .lang.IllegalStateException: Не удалось выполнить метод для android : onClick в android .view.View $ DeclaredOnClickListener.onClick (View. java: 5979) в android .view.View.performClick (View. java: 7125) в android .view.View .performClickInternal (просмотр. java: 7102) в android .view.View.access $ 3500 (просмотр. java: 801) в android .view.View $ PerformClick.run (просмотр. java: 27336) в android .os.Handler.handleCallback (Обработчик. java: 883) в android .os.Handler.dispatchMessage (Обработчик. java: 100) в android .os.Looper.l oop (Looper. java: 214) в android .app.ActivityThread.main (ActivityThread. java: 7356) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ Me thodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930) Причина: java .lang.reflect.InvocationTargetException в java .lang.reflect.Method.invoke (собственный метод) в android .view.View $ DeclaredOnClickListener.onClick (просмотр. java: 5974) в android .view.View.performClick (просмотр. java : 7125) в android .view.View.performClickInternal (View. java: 7102) в android .view.View.access $ 3500 (View. java: 801) в android .view.View $ PerformClick.run (просмотр. java: 27336) в android .os.Handler.handleCallback (обработчик. java: 883) в android .os.Handler.dispatchMessage (обработчик. java: 100 ) в android .os.Looper.l oop (Looper. java: 214) в android .app.ActivityThread.main (ActivityThread. java: 7356) в java .lang.reflect .Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930) Причина: java .lang.NoClassDefFoundError: Ошибка разрешения: Lor г / апач / Обще / регистрация / LogFactory; в com.amazon aws .util.VersionInfoUtils. (VersionInfoUtils. java: 41) в com.amazon aws .util.VersionInfoUtils.getUserAgent (VersionInfoUtils. java: 77) в com.amazon aws .ClientConfiguration. (ClientConfiguration. java: 43) в com.amazon aws .mobileconnectors. java: 36) в com.example.homing.views.SignUpActivity.signUp (SignUpActivity. java: 65) в java .lang.reflect.Method.invoke (собственный метод) в android .view. Посмотреть $ DeclaredOnClickListener.onClick (Просмотреть. java: 5974) в android .view.View.performClick (Просмотреть. java: 7125) в android .view.View.performClickInternal (Просмотреть. java: 7102) в android .view.View.access $ 3500 (View. java: 801) в android .view.View $ PerformClick.run (View. java: 27336) в android .os. Handler.handleCallback (Handler. java: 883) в android .os.Handler.dispatchMessage (Handler. java: 100) в android .os.Looper.l oop (Looper. java : 214) в android .app.A ctivityThread.main (ActivityThread. java: 7356) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java) : 492) at com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930) Причина: java .lang.ClassNotFoundException: Не удалось найти класс "org. apache .commons .logging.LogFactory "по пути: DexPathList [[zip-файл" /data/app/com.example.homing-5MXFtoCYU5up-qVfFklHMQ==/base. apk "], nativeLibraryDirectories = [/ data / app / com.example.homing-5MXFtoCYU5up-qVfFklHMQ == / lib / x86, / system / lib, / system / product / lib]]
И это приводит меня к этой строке CognitoUserPool userPool = new CognitoUserPool(context, userPoolID, clientID, null, cognitoRegion);
Полный класс:
package com.example.homing.models;
import android.content.Context;
import com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool;
import com.amazonaws.regions.Regions;
public class CognitoHelper {
private final String userPoolID = "us-east-1_jA*****";
private final String clientID = "2uo5cgvjd*********";
private final String clientSecret = "";
private final Regions cognitoRegion = Regions.US_EAST_1;
private Context context;
public CognitoHelper(Context context) {
this.context = context;
}
public String getUserPoolID() {
return userPoolID;
}
public String getClientID() {
return clientID;
}
public String getClientSecret() {
return clientSecret;
}
public Regions getCognitoRegion() {
return cognitoRegion;
}
public CognitoUserPool getUserPool() {
CognitoUserPool userPool = new CognitoUserPool(context, userPoolID, clientID,
null, cognitoRegion);
return userPool;
}
}
(я добавил звезды, но у меня есть полные идентификаторы в коде .)
Нажатие кнопки моей активности:
public void signUp(View view) {
if(passwordEdit.getText().toString().equals(confirmPasswordEdit.getText().toString())) {
CognitoUserPool userPool = cognitoHelper.getUserPool();
CognitoUserAttributes userAttributes = new CognitoUserAttributes();
userAttributes.addAttribute("phone_number", phoneEdit.getText().toString());
//userAttributes.addAttribute("picture", ); save on s3 then bring url
userAttributes.addAttribute("name", nameEdit.getText().toString());
userAttributes.addAttribute("birthdate", birthdayEdit.getText().toString());
userAttributes.addAttribute("status", statusEdit.getText().toString());
userPool.signUpInBackground(phoneEdit.getText().toString(), passwordEdit.getText().toString(),
userAttributes, null, signupHandler(userAttributes, userPool));
} else {
Log.d("AWS cognito", "Passwords dont match");
}
}
private SignUpHandler signupHandler(final CognitoUserAttributes userAttributes, final CognitoUserPool userPool) {
return new SignUpHandler() {
@Override
public void onSuccess(CognitoUser user, boolean userConfirmed, CognitoUserCodeDeliveryDetails cognitoUserCodeDeliveryDetails) {
if (!userConfirmed) {
Log.d("AWS cognito", "Signup not confirmed " + cognitoUserCodeDeliveryDetails.getDestination());
} else {
Log.d("AWS cognito", "Signup confirmed");
}
}
@Override
public void onFailure(Exception exception) {
Log.d("AWS cognito", "Signup failed");
}
};
}
Когда эта ошибка была устранена (см. Комментарии), у меня возникла новая проблема, связанная с этой ошибкой при регистрации пользователя
"Клиент попытался записать неавторизованный атрибут (Сервис: AmazonCognitoIdentityProvider; Код состояния: 400; Код ошибки: NotAuthorizedException; Идентификатор запроса: 4336c90e-f15b-4100-bd7b-47111ef64979)"
Хотя в моем пуле пользователей у меня есть права на запись и чтение для всех атрибутов