Интегрирование Account Kit привело меня к проблеме
( Невозможно найти явный класс действий {com.app.mk.transport / com.facebook.accountkit.AccountKit}; объявили ли вы это действие в своем AndroidManifest.xml? )
вот код активности:
private void signInWithPhone() {
Intent intent = new Intent(MainActivity.this, AccountKit.class);
AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder =
new AccountKitConfiguration.AccountKitConfigurationBuilder(LoginType.PHONE, AccountKitActivity.ResponseType.TOKEN);
intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build());
startActivityForResult(intent, REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
AccountKitLoginResult result = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);
if (result.getError() != null) {
Toast.makeText(this, "" + result.getError().getErrorType().getMessage(), Toast.LENGTH_SHORT).show();
return;
} else if (result.wasCancelled()) {
Toast.makeText(this, "Cancel login", Toast.LENGTH_SHORT).show();
} else {
if (result.getAccessToken() != null) {
final android.app.AlertDialog waitingDialog = new SpotsDialog.Builder()
.setContext(this)
.setTheme(R.style.Orange)
.setMessage(R.string.waitingDialog_title)
.setCancelable(false)
.build();
waitingDialog.show();
//get current phone
AccountKit.getCurrentAccount(new AccountKitCallback<Account>() {
@Override
public void onSuccess(Account account) {
final String userPhone = account.getPhoneNumber().toString();
users.orderByKey().equalTo(userPhone)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!dataSnapshot.child(userPhone).exists()) {
User user = new User();
user.setPhone(userPhone);
user.setName(userPhone);
user.setAvatarUrl("");
user.setRates("0.0");
//
users.child(userPhone)
.setValue(user)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
users.child(userPhone)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Common.currentUser = dataSnapshot.getValue(User.class);
Intent homeIntent = new Intent(MainActivity.this, DriverHome.class);
startActivity(homeIntent);
waitingDialog.dismiss();
finish();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
} else {
users.child(userPhone)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Common.currentUser = dataSnapshot.getValue(User.class);
Intent homeIntent = new Intent(MainActivity.this, DriverHome.class);
startActivity(homeIntent);
waitingDialog.dismiss();
finish();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public void onError(AccountKitError accountKitError) {
Toast.makeText(MainActivity.this, ""+accountKitError.getErrorType().getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
}
}
А вот и мой манифест:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data android:name="com.facebook.accountkit.ApplicationName"
android:value="@string/app_name" />
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/FACEBOOK_APP_ID" />
<meta-data android:name="com.facebook.accountkit.ClientToken"
android:value="@string/ACCOUNT_KIT_CLIENT_TOKEN" />
<activity
android:name="com.facebook.accountkit.ui.AccountKitActivity" />
<activity
android:name=".DriverHome"
android:label="@string/title_activity_driver_home"
android:theme="@style/AppTheme.NoActionBar"></activity>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.places.API_KEY"
android:value="<API_KEY>" />
<activity
android:name=".TripDetail"
android:label="@string/title_activity_trip_detail" />
<activity
android:name=".DriverTracking"
android:label="@string/title_activity_driver_tracking" />
<activity android:name=".CustommerCall" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.google.firebase.auth.internal.FederatedSignInActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
android:permission="com.google.firebase.auth.api.gms.permission.LAUNCH_FEDERATED_SIGN_IN"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
tools:replace="android:launchMode" />
<service android:name="com.google.firebase.components.ComponentDiscoveryService" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<meta-data
android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
android:value="com.google.firebase.components.ComponentRegistrar" />
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<service android:name=".Service.MyFirebaseIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name=".Service.MyFirebaseMessaging">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
вот ошибка logcat:
2019-03-28 23:10:08.007 23508-23508/com.app.mk.transport E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.mk.transport, PID: 23508
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.app.mk.transport/com.facebook.accountkit.AccountKit}; have you declared this activity in your AndroidManifest.xml?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1950)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1622)
at android.app.Activity.startActivityForResult(Activity.java:4564)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4522)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at com.app.mk.transport.MainActivity.signInWithPhone(MainActivity.java:143)
at com.app.mk.transport.MainActivity.access$000(MainActivity.java:45)
at com.app.mk.transport.MainActivity$1.onClick(MainActivity.java:88)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12693)
at android.view.View$PerformClick.run(View.java:26101)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Я немного новичок в этом, поэтому любая помощь будет оценена: D, Спасибо.