android приложение вылетает при настройке описания задачи - PullRequest
0 голосов
/ 25 апреля 2020

я пытаюсь задать описание задачи, используя следующий код

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

        String title = "F App";
        int icon = R.drawable.circle;
        int color = R.color.red;

        ActivityManager.TaskDescription description = new ActivityManager.TaskDescription(title, icon, color);
        this.setTaskDescription(description);

    }

, и это журнал ошибок

java.lang.NoSuchMethodError: No direct method <init>(Ljava/lang/String;II)V in class Landroid/app/ActivityManager$TaskDescription; or its super classes (declaration of 'android.app.ActivityManager$TaskDescription' appears in /system/framework/framework.jar)
        at com.myapp.app.main.home.galaxy.FAppActivity.onViewsInitialised(FAppActivity.java:36)
        at com.myapp.app.common.BaseActivity.onCreate(BaseActivity.java:47)
        at android.app.Activity.performCreate(Activity.java:7030)
        at android.app.Activity.performCreate(Activity.java:7021)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2773)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2898)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1624)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6549)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)

я просочился через некоторые потоки [не с ошибкой прилегания, но чем-то похожим] и обнаружил, что некоторые зависимости могут использовать более старую версию библиотеки поддержки и могут не иметь метода. Я не знаю, влияет ли эта штука!

в моем app.gradle, используя androidx.appcompat:appcompat:1.1.0 и компилируем SDK версии 28 и SDK Tools версии 28.0.3

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

1 Ответ

0 голосов
/ 25 апреля 2020

Вы используете конструктор с тремя аргументами , который доступен только в API.28 (Android P)

Если вы хотите использовать API 21, вы должны использовать конструктор с одним аргументом или устаревший конструктор с 3 аргументами , который использует Bitmap вместо значка int.

Таким образом, чтобы ваш код работал

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {

    String title = "F App";
    int icon = R.drawable.circle;
    int color = R.color.red;

    ActivityManager.TaskDescription description = new ActivityManager.TaskDescription(title, icon, color);
    this.setTaskDescription(description);

} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

    String title = "F App";
    Bitmap icon = .....
    int color = R.color.red;

    ActivityManager.TaskDescription description = new ActivityManager.TaskDescription(title, icon, color);
    this.setTaskDescription(description);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...