안드로이드 버전 정보 표시 문제 해결 (Lovable 변경사항 병합)
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
package com.lovable.zellyfinance;
|
||||
|
||||
import android.os.Build;
|
||||
@@ -27,17 +26,28 @@ public class BuildInfoPlugin extends Plugin {
|
||||
|
||||
JSObject ret = new JSObject();
|
||||
|
||||
// 빌드 정보 수집
|
||||
// BuildConfig에서 동적으로 버전 정보 가져오기
|
||||
String versionName = BuildConfig.VERSION_NAME;
|
||||
int versionCode = BuildConfig.VERSION_CODE;
|
||||
int buildNumber = BuildConfig.BUILD_NUMBER;
|
||||
String packageName = getContext().getPackageName();
|
||||
int buildNumber;
|
||||
|
||||
// 디버깅을 위한 로그 출력 개선
|
||||
Log.d(TAG, "앱 버전 정보 준비 - 버전명: " + versionName);
|
||||
Log.d(TAG, "앱 버전 정보 준비 - 버전 코드: " + versionCode);
|
||||
Log.d(TAG, "앱 버전 정보 준비 - 빌드 번호: " + buildNumber);
|
||||
Log.d(TAG, "앱 버전 정보 준비 - 패키지명: " + packageName);
|
||||
// 빌드 넘버는 커스텀 필드이므로 try-catch로 확인
|
||||
try {
|
||||
buildNumber = BuildConfig.BUILD_NUMBER;
|
||||
Log.d(TAG, "BuildConfig.BUILD_NUMBER: " + buildNumber);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "BUILD_NUMBER 필드 접근 오류, 기본값 사용", e);
|
||||
buildNumber = versionCode; // 빌드 넘버가 없으면 버전 코드와 동일하게 설정
|
||||
}
|
||||
|
||||
// 디버깅을 위한 로그 출력
|
||||
Log.d(TAG, "BuildConfig 클래스: " + BuildConfig.class.getName());
|
||||
Log.d(TAG, "버전명: " + versionName);
|
||||
Log.d(TAG, "버전 코드: " + versionCode);
|
||||
Log.d(TAG, "빌드 번호: " + buildNumber);
|
||||
|
||||
String packageName = getContext().getPackageName();
|
||||
Log.d(TAG, "패키지명: " + packageName);
|
||||
|
||||
// 결과 객체에 값 설정
|
||||
ret.put("versionName", versionName);
|
||||
@@ -49,25 +59,17 @@ public class BuildInfoPlugin extends Plugin {
|
||||
ret.put("platform", "android");
|
||||
|
||||
// 현재 날짜를 디버깅 정보로 추가
|
||||
ret.put("buildDate", new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.util.Date()));
|
||||
ret.put("timestamp", System.currentTimeMillis());
|
||||
|
||||
Log.d(TAG, "빌드 정보 응답 성공: " + ret.toString());
|
||||
// 성공 응답
|
||||
call.resolve(ret);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "빌드 정보 가져오기 실패", e);
|
||||
|
||||
// 오류 발생 시에도 기본 정보 반환하여 앱 중단 방지
|
||||
JSObject errorResult = new JSObject();
|
||||
errorResult.put("versionName", "1.1.1.2"); // 최신 버전으로 업데이트
|
||||
errorResult.put("versionCode", 6); // 최신 버전 코드로 업데이트
|
||||
errorResult.put("buildNumber", 6); // 최신 빌드 번호로 업데이트
|
||||
errorResult.put("error", e.getMessage());
|
||||
errorResult.put("errorType", e.getClass().getName());
|
||||
errorResult.put("platform", "android-error");
|
||||
|
||||
Log.d(TAG, "오류 발생으로 기본값 반환: " + errorResult.toString());
|
||||
call.resolve(errorResult);
|
||||
// 오류 로깅 강화
|
||||
Log.e(TAG, "빌드 정보 가져오기 오류", e);
|
||||
JSObject errorObj = new JSObject();
|
||||
errorObj.put("message", e.getMessage());
|
||||
errorObj.put("stack", Log.getStackTraceString(e));
|
||||
call.reject("빌드 정보 가져오기 실패", errorObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user