Android 는 오래된 API 를 사용 하거나 덮어 씁 니 다.

9375 단어 Android잡기
컴 파일 할 때 유사 한 알림 이 나타 납 니 다:
 :                  API。
 :       ,     -Xlint:deprecation     。
 : /Volumes/MacSD/Android_Work_AS/sdk.v3new/AS/nBSDK/src/main/java/com/nbsdk/main/PassportGuestLogin.java              。
 :       ,     -Xlint:unchecked     。

해결:
1.Module 의 build.gradle 에서 android 노드 에서 다음 과 같은 정 보 를 설정 합 니 다.
    //             api,     api             
    allprojects {
        gradle.projectsEvaluated {
            tasks.withType(JavaCompile) {
                options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
            }
        }
    }

2.Moudle 을 실행 하고 유행 이 지난 api 나 이상 문 구 를 찾 아 하나씩 수정 하 세 요!다음은 나의 정리 이다.
  : [deprecation] Resources  getColor(int)getResources().getColor(R.color.colorAccent)
  :ContextCompat.getColor(Context,R.color.colorAccent)

  : [deprecation] Resources  getDrawable(int)   

  :sContext.getResources().getDrawable(R.drawable.btn)
  :ContextCompat.getDrawable(sContext,R.drawable.btn)
  : [deprecation] WebViewClient  shouldOverrideUrlLoading(WebView,String)shouldOverrideUrlLoading(WebView view, String url)
  :
//      request.getUrl()   url,            
shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
  : [deprecation] PackageInfo  versionCode   

  :packageInfo.versionCode;
  :packageInfo.getLongVersionCode();

    ,getLongVersionCode()  API-28       。

        ,       ,         :

    @SuppressWarnings("deprecation")
	public static int getVersionCode(Context context) {
		try {
			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
				return (int) context.getPackageManager().getPackageInfo(NBUtils.getBundleID(context), 0).getLongVersionCode();
			}
			return context.getPackageManager().getPackageInfo(NBUtils.getBundleID(context), 0).versionCode;
		} catch (Exception e) {
			return 0;
		}
	}

추 후 점차 보충~환영 타 상 환영 타 상 환영 타 상

좋은 웹페이지 즐겨찾기