Cannot convert string value 'JETPACK_COMPOSE' to an enum value of type 'com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag' (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRANSITIVE_R_CLASS)
build.gradle 파일내 4.0.0이상으로 되어있는 버전을 다음과 같이 3.6.1버전으로 낮추면 에러를 해결할 수 있다.
<activity
android:name=".TestActivity">
<!-- 이 부분이 다 들어가 있어야 동작 -->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="schemeName" android:host="hostName"/>
</intent-filter>
</activity>
설명
android.intent.action.VIEW : 이 작업은 액티비티가 사용자에게 표시할 수 있는 어떤 정보를 가지고 있을 때 startActivity()가 있는 인텐트에서 사용합니다. 예를 들어 갤러리 앱에서 볼 사진이나 지도 앱에서 볼 주소 등이 이에 해당됩니다.
android.intent.category.DEFAULT : 암시적 인텐트를 수신하려면 인텐트 필터 안에 반드시 포함되어 있어야 합니다.
android.intent.category.BROWSABLE : 대상 액티비티가 스스로 웹 브라우저가 자신을 시작해도 되도록 허용하여 링크로 참조된 데이터를 표시하게 합니다. 예컨대 이미지나 이메일 메시지 등이 이에 해당합니다.
data : 이 부분에서 scheme이름과 host이름을 지정해주어야 실행시킬 수 있습니다.
포맷
<scheme>://<host>:<port>/<path>
Web에서 설정
<ahref="schemeName://hostName"> 실행 하기 </a>
위와 같이 설정이 끝난 상태에서 Web에서 해당 링크를 누르게 되면 설치되어 있는 경우에 지정한 Activity가 실행이 됩니다.
SMC는 전원이나 방열 팬, 백라이트 및 부팅 등 맥 전원 체계와 시스템에 연결된 각종 외부 장치들을 총제적으로 관리하는 칩입니다. 다음과 같은 문제가 발생할 경우 SMC를 초기화하는 것으로 효과를 볼 수 있습니다.
• 배터리 관련 이상 증상 • 배터리 인디케이터 오작동 • 디스플레이 밝기 관련 이상 증상 • 키보드 백라이트 관련 이상 증상 • 시스템 팬 관련 이상 증상 • 전원 버튼 오작동 • 잠자기 관련 이상 증상 • 외부 전원(USB, FireWire등) 관련 이상 증상 • 외부 장치(USB HDD등) 관련 이상 증상 • 외부 모니터 인식 문제 • 에어포트 및 블루투스 관련 이상 증상 • 급작스럽게 시스템 전원이 나가는 증상 • SMS(하드 충격 방지 시스템) 오작동
2-2. SMC 재설정 방법
• 포터블 맥(배터리를 탈착할 수 있는 구형 맥북 모델)
1. (맥이 켜져 있는 상태라면) 맥을 종료시킵니다. 2. 전원 케이블을 맥에서 연결 해제합니다. 3. 배터리를 제거합니다. 4. 전원 버튼을 5초간 눌러준 후 손을 땝니다. 5. 배터리를 다시 장착하고 전원 어댑터를 연결합니다. 6. 전원 버튼을 누르고 OS X을 부팅해 줍니다.
• 포터블 맥(배터리를 탈착할 수 없는 맥북 모델)
1. (맥이 켜져 있는 상태라면) 맥을 종료시킵니다. 2. (전원 케이블이 분리되어 있는 상태라면) 전원 케이블을 연결해 줍니다. (배터리 탈착가능한 모델과 반대입니다.) 3. 내장 키보드의 왼쪽 shift + control + option + 전원 버튼을 동시에 눌러줍니다. 4. 마찬가지로 동시에 위 키들에서 손가락을 땝니다. 5. 전원 버튼을 눌러 맥을 시동시킵니다.
NVRAM/PRAM을 리셋하는 방법은 2016년 맥북프로를 제외한 모든 기종이 동일합니다. 맥이 완전히 꺼져 있는 상태에서 command + option + p + r 키를 먼저 누른 상태에서 전원 버튼'을 누르고 있으세요. 부팅이 한 번 됐다 다시 자동으로 리부팅 됩니다. 그리고 재부팅 직후 누르고 있던 키에서 손을 땝니다.
MacBook Pro (Late 2016) 모델에서 NVRAM을 재설정하는 방법
2016 신형 맥북프로의 경우 시동음이 들리지 않기 때문에 NVRAM을 재설정하는 방법이 조금 다릅니다.
앞서 출시된 다른 맥북은 전원을 켠 뒤 시동음이 들리면 command + option + p + r 키를 길게 누르는 방법으로 NVRAM을 초기화할 수 있습니다. 하지만 시동음이 들리지 않는 2016 맥북프로는 전원을 켠 직 후 command + option + p + r 키를 누르고 20초간 손가락을 떼지 않아야 한다고 합니다. 터치바 탑재 여부와 상관없이 2016년 출시된 모든 맥북프로에 공통으로 적용되는 사항입니다.
extern int encryptSeedCBC( IN BYTE *pbszUserKey, IN BYTE *pbszIV, IN BYTE *pbszPlainText, OUT BYTE *pbszCipherText );
extern int decryptSeedCBC( IN BYTE *pbszUserKey, IN BYTE *pbszIV, IN BYTE *pbszCipherText, OUT BYTE *pbszPlainText );
KISA_SEED_CBC.c
다음과 같이 작성해 준다.
작성에 앞서 main()함수는 제거해주도록 하자.
int encryptSeedCBC( IN BYTE *pbszUserKey, IN BYTE *pbszIV, IN BYTE *pbszPlainText, OUT BYTE *pbszCipherText )
{
printf("\n---------------------------------");
printf("\nplainText : %s\n", (char *)pbszPlainText);
int nPlainTextLen = (int)strlen((char *)pbszPlainText);// 평문의 Byte길이
printf ("\n---------------------------------");
printf ("\nSEED CBC Encryption....\n");
// 암호문의 Byte길이 - 패딩 로직때문에 16바이트 블럭으로 처리함으로 pbszCipherText는 평문보다 16바이트 커야 한다.
int nCipherTextLen = SEED_CBC_Encrypt( pbszUserKey, pbszIV, pbszPlainText, nPlainTextLen, pbszCipherText );
return nCipherTextLen;
}
int decryptSeedCBC( IN BYTE *pbszUserKey, IN BYTE *pbszIV, IN BYTE *pbszCipherText, OUT BYTE *pbszPlainText )
{
int nCipherTextLen = (int)strlen((char *)pbszCipherText);// 암호문의 Byte길이
printf ("\n---------------------------------");
printf ("\nSEED CBC Decryption....\n");
// 평문의 Byte길이
int nPlainTextLen = SEED_CBC_Decrypt( pbszUserKey, pbszIV, pbszCipherText, nCipherTextLen, pbszPlainText );
return nPlainTextLen;
}
private val hexArray = "0123456789ABCDEF".toCharArray()
fun bytesToHex(bytes: ByteArray): String {
val hexChars = CharArray(bytes.size * 2)
for (j in bytes.indices) {
val v = (bytes[j] and 0xFF.toByte()).toInt()
hexChars[j * 2] = hexArray[v ushr 4]
hexChars[j * 2 + 1] = hexArray[v and 0x0F]
}
return String(hexChars)
}
fun main(args: Array<String>) {
val bytes = byteArrayOf(10, 2, 15, 11)
val s = bytesToHex(bytes)
println(s)
}