-
Android 2018‧05‧17
java.io.StreamCorruptedException: invalid type code: 29
안드로이드 개발 작업을 수정하다가 랜더링 후 아래와 같은 오류가 발생하였다. :app:transformNativeLibsWithMergeJniLibsForDebug java.io.StreamCorruptedException: invalid type code: 29 검색해보니 invalid type code: 29 에 대한 오류 대응은 없고 거의 invalid type code: 00 이였다. 결론부터 말하자면 사실 프로젝트 폴더를 다른 PC의 작업 폴더를 복사해와서 생긴 오류였다. 안드로이드 스튜디오를 실행했을 때 이런 오류가 떴었기 때문이다. 이 오류 […]
-
Android 2018‧01‧10
~ free bytes and 2MB until OOM 에러
manifests > AndroidManifest.xml 안에 android:largeHeap="true" 와 android:hardwareAccelerated="false" 를 추가해준다. <application android:name=".SetApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:largeHeap="true" android:hardwareAccelerated="false" android:theme="@style/AppTheme"> 이유나 문서가 필요하면 안드로이드 개발 사이트를 참고하면 된다. https://developer.android.com/topic/performance/graphics/index.html
-
Android 2018‧01‧02
라운드 버튼 만들기, shape solid 배경색 변경
먼저 res> drawable 안에 xml을 하나 만들어 shape를 추가한다. 본인은 roundbtn.xml이라고 만들었다. <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ff0000" /> <corners android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" android:topRightRadius="20dp" android:topLeftRadius="20dp"/> </shape> 라운드가 각 4방향에 20dp로 라운드되게 만든 shape다. 이제 버튼에 background 에 roundbtn.xml을 추가하자. <Button android:id="@+id/signaldocentcolor" android:layout_width="20dp" android:layout_height="20dp" android:background="@drawable/roundbtn" /> 이렇게 만들어두기만 하면 괜찮은데 간혹 상황에 따라 동그랗게 만든 […]
-
Android 2018‧01‧02
버튼에 그림자 빼기
버튼에 기본적으로 그림자가 붙어서 UI가 빠지는데 이걸 버튼에 스타일로 style="?android:attr/borderlessButtonStyle" 한줄을 넣어주면 된다. <Button android:id="@+id/signalvip1color" android:layout_width="20dp" android:layout_height="20dp" android:background = "@drawable/roundbtn" style="?android:attr/borderlessButtonStyle"/>
-
Android 2018‧01‧02
WIFI 신호 감도, 속도, AP기기 맥 어드레스 가져오기
현재 접속한 wifi 의 신호 감도가 얼마 정도인지, 네트워크 속도는 얼마나 되는지 알고 싶고 같은 SSID라도 AP 기기가 다를 수 있는데 전환되었는지 알아 볼 때 AP 기기의 맥 어드레스로 알 수 있다. manifests > AndroidManifest.xml 를 열어 퍼미션을 추가해 준다. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 그리고 아래 코드로 […]
-
Android 2017‧12‧26
안드로이드로 핑 테스트 하기
네트워크 체크할 때 사용했다. String host = "192.168.0.100"; String cmd = "ping -c 1 -W 10 " + host; try { Process proc = Runtime.getRuntime().exec(cmd); proc.waitFor(); int result = proc.exitValue(); Log.d("------result", result); } catch (Exception e) { Log.d("------ping", e.getMessage()); }
-
Android 2017‧12‧22
int 를 String으로
int result = 1; 이렇게 인트 값을 지정하거나 인수로 받아서 문자열로 변환하여 다시 사용할 때 아래처럼 바꾼다. String.valueOf(result)
-
Android 2017‧12‧07
mediaPlayer 재생 완료 이벤트 받기
미디어플레이어 재생이 끝나고 다음 함수를 실행하거나 할 때 요긴하게 쓰인다. MediaPlayer.setOnCompletionListener 를 이용해서 만들면 된다. 상단에 미디어 플레이어 import 코드를 넣어주고 import android.media.MediaPlayer; activity class 안에 미디어 플레이어를 아래 예제처럼 MediaPlayer mPlayer; 를 추가해준다. public class SubActivity extends AppCompatActivity implements SurfaceHolder.Callback{ MediaPlayer mPlayer; 이제 미디어플레이어를 불러오는 곳에서 아래 코드를 작성한다. mPlayer = new MediaPlayer(); […]
-
Android 2017‧11‧30
디바이스 현재 아이피 주소 가져오기
내가 현재 부여받은 네트워크의 아이피를 보려고 할 때 java > MainActivity.java 에 class MainActivity 안에 아래 코드를 넣어준다. public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { return […]