MainActivity.java: использует или отменяет устаревший API.Перекомпилировать с -Xlint: не рекомендуется для деталей - PullRequest
0 голосов
/ 27 декабря 2018

Понятия не имею, как решить эту проблему.
Когда я пытаюсь скомпилировать папку в файл APK, появляется сообщение, в котором говорится:

MainActivity.java использует или отменяет устаревший API.

Я использую Android Studio версии 3.2.0 и Java версии 8. Я попробовал все, но это не работает.Я также искал в Интернете, но я не мог получить ответ.

package com.kakao.talk.theme.apeach;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends Activity {
private static final String KAKAOTALK_SETTINGS_THEME_URI = 
"kakaotalk://settings/theme/";
private static final String MARKET_URI = "market://details?id=";
private static final String KAKAO_TALK_PACKAGE_NAME = "com.kakao.talk";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        try {
            Window window = this.getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.setStatusBarColor(getResources().getColor(R.color.statusBarColor));
        } catch (Throwable ignored) {
        }
    }

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        try {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        } catch (Throwable ignored) {
        }
    }

    final Button applyButton = (Button) findViewById(R.id.apply);
    applyButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            final Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(KAKAOTALK_SETTINGS_THEME_URI + getPackageName()));
            startActivity(intent);
            finish();
        }
    });

    final Button installButton = (Button) findViewById(R.id.market);
    installButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(MARKET_URI + KAKAO_TALK_PACKAGE_NAME));
            startActivity(intent);
            finish();
        }
    });

    try {
        getPackageManager().getPackageInfo(KAKAO_TALK_PACKAGE_NAME, 0);
        applyButton.setVisibility(View.VISIBLE);
        installButton.setVisibility(View.GONE);
    } catch (NameNotFoundException e) {
        applyButton.setVisibility(View.GONE);
        installButton.setVisibility(View.VISIBLE);
    }
}

}

1 Ответ

0 голосов
/ 27 декабря 2018

добро пожаловать в StackOverflow!

В вашем коде после проверки версии вы пытаетесь установить цвет состояния окна с помощью getResources().getColor(), который уже устарел в течение нескольких лет.

Вы можете использовать ContextCompat для достижения этой цели: ContextCompat.getColor(context, R.color.color_name).

Вам также следует изменить R.color.color_name для желаемого ресурса (в вашем случае должно быть R.color.statusBarColor)как передать правильный контекст (который должен быть getApplicationContext()).

Дополнительную информацию можно найти на этом посте , и никогда не забывайте документацию great google на Android .

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