Target SDK 31로 설정 후 IllegalArgumentException FLAG_IMMUTABLE or FLAG_MUTABLE 이 발생하는 경우 아래 라이브러리를 추가해주면 됩니다. 

implementation 'androidx.work:work-runtime:2.7.0'

 

Posted by 후미카
:

Target SDK 31이상 설정 시 APK 파일을 설치할때 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 에러가 발생하는 경우가 있습니다.
이땐 Manifest에 exported를 명시적으로 선언해주면 해결 됩니다.

 

Posted by 후미카
:

외부 라이브러리 가 androidx를 사용하거나 support 라이브러리를 사용 하는경우 둘이 충돌 날 수 있다.

해결방법은 androidx 또는 support 라이브러리로 맞춰주는 방법인데 라이브러리 수정이 불가능 한 경우 gradle.properties 에 옵션을 설정함으로 해결 할 수 있다.

 

gradle.properties 에 아래 두줄을 추가하면 해결

android.useAndroidX=true

android.enableJetifier=true

 

2줄 추가 후에도 해결되지 않는 경우 프로젝트 gradle 의 버전을 올려보자.

Posted by 후미카
:

GPGS 로그인 시 아래와 같은 에러 메세지가 발생하는 경우가 있습니다.


2019-02-22 17:14:00.858 2055-2055/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.android.gms, PID: 2055
    java.lang.IllegalStateException: A fatal developer error has occurred. Class name: rbq. Start service action: com.google.android.gms.games.service.START. Service Descriptor: com.google.android.gms.games.internal.IGamesService. 

그럴 경우 Manifest 파일에 app_id 를 정확히 넣었는지 확인 후 app_id 에 문제가 없는 경우 app_id 를 아래와 같은 방식으로 변경 해 줍니다.

ex) app_id 가 123456789 인 경우 앱 아이디 앞에 \u003 을 추가 해 줍니다.



Posted by 후미카
:

Google Play Games Service 를 추가하다 보면 IllegalStateExeption: A fatal developer error has occurred. 와 같은 에러가 발생하며 어플리케이션이 비정상 종료 되는 현상을 볼 수 있습니다.

어플리케이션이 종료되기 전에 [Application ID (000000000000) must be a numeric value. Please verify that your manifest refers to the correct project ID.] 라는 로그를 확인 할 수 있습니다.


해결 방법은 Manifest 에 APP_ID의 형식을 "\ 123456789" 방식에서 "\u003123456789" 로 변경 해 주는 것 입니다.


APP_ID 를 123456789 라 가정 할 때 아래와 같이 사용하면 됩니다.


    


Posted by 후미카
:

구글 플레이 게임 서비스 중 세이브드 게임 저장 / 불러오기를 할 때 구글 클라우드 설정에서 어플리케이션 데이터를 삭제 한 경우 에러코드 4005 (STATUS_SNAPSHOT_FOLDER_UNAVALIABLE) 이 나오는 경우가 있다.


이 경우 로그인을 다시 하면 권한 요청 팝업이 나오지만 허용을 하더라도 정상적으로 진행이 되지 않는다.

이 때 어플리케이션을 제거한 뒤 재 설치를 하게 되면 권한 요청 팝업이 새로 나오면서 정상 진행이 된다.

Posted by 후미카
:

Keystore 정보를 확인 하는 방법은 터미널 또는 CMD 에서 아래 명령어를 실행하면 된다.


keytool -v -list -keystore [Keystore 파일]


위 명령어 입력 시 비밀번호를 입력 하라는 창이 뜨며 비밀번호 입력 시 키스토어의 정보가 나오게 된다.

Posted by 후미카
:

UnsatifiedLinkError 의 경우 해당 so 파일을 찾지 못해서 앱이 죽는 경우 입니다.


해당 라이브러리 파일을 컴파일을 하지 않은 경우 컴파일을 해주면 해결이 되며 


컴파일을 한 경우에도 지속적으로 나오는 경우 안드로이드의 so 파일 설치 정책이 바뀌어서 발생하는 현상 입니다.


기존의 경우 armeabi 폴거의 so 파일을 복사 한 뒤 armeabi-v7a 폴더의 파일을 복사 했지만 최신 버전의 안드로이드의 경우 armeabi 폴더 또는 armeabi-v7a 폴더 중 해당하는 폴더만 복사되기 때문에 라이브러리 중 armeabi 만 지원하는 경우가 있다면 armeabi-v7a 폴더에서 해당 so 파일을 찾기 못해서 발생하는 에러 입니다.


해결 방법은 라이브러리에 추가된 armeabi-v7a 를 제거 하거나 모든 컴파일을 armeabi-v7a 를 추가하여 빌드 하여야 합니다.

Posted by 후미카
:

ANR 이 발생하게 되면 휴대폰의 data/anr 폴더 안에  traces.txt 파일에 기록이 된다.


이것을 ADB 를 이용해서 컴퓨터로 가져온 뒤 Held By 와 관련된 부분을 중점적으로 살펴 보면 원인을 쉽게 찾을 수 있다.



> adb pull data/anr/traces.txt


위 명령어를 사용하면 traces.txt 파일을 컴퓨터로 가져올 수 있다.

Posted by 후미카
:

1. 윈도우 미디어 플레이어 11을설치한다.

http://www.microsoft.com/ko-kr/download/details.aspx?id=2801


2. USB 드라이버를 다운받아서 설치한다.

http://developer.android.com/sdk/win-usb.html#top




윈도우 미디어 플레이어 11이 없어서 설치가 안되는 경우가 많으니 윈도우 미디어 플레이어 11을 반드시 설치 해 준다.

Posted by 후미카
:
이클립스 실행시 android SDK: Resolving error markers 가 뜨면서 더이상 진행이 되지 않는 경우



시작 - 실행 - CMD

이클립스 폴더로 이동 후 

eclipse -clean -refresh


cmd 에서 폴더 이동방법

cd 경로 


ex)  c드라이브에 있는 eclipse 폴더의 경우

cd c:\eclipse




Posted by 후미카
:

인앱빌링 개발 중 "사용자는 이 항목을 구입 할 수 없습니다." 라는 문구가 표시되면서 인앱 구매가 불가능 한 상황이 있다.


이때는 구글 플레이 개발자 콘솔에서 구글 계정을 테스트 권한이 있는 Gmail 계정에 추가 해주어야 합니다.


추가 한 뒤 적용 되는데 일정 시간이 걸립니다.


Posted by 후미카
:

애드몹을 추가 해 준 뒤에 다음 코드를 싱행 시키면 바로 refresh 되면서 광고가 노출된다.


adView.setVisibility(View.VISIBLE);



Posted by 후미카
:

Device 에서 에뮬레이터 혹은 단말기를 선택 해 주면 됩니다.




Posted by 후미카
:

티스토어 서버와 연결 되었다는 메시지는 나오는데 검은 화면만 나오는 경우가 있다


그럴때는 매니페스트 파일에 다음 메타데이터를추가 해주면된다.


어플리케이션 태그 사이에 넣어주면된다.




<meta-data android:name="iap:api_version"  android:value="1" />
Posted by 후미카
:

TNK 개발 순서

1. SDK 라이브러리 등록

2. META DATA에 app id 등록

3. 퍼미션 등록

4. sdk 최소버전 4 이상으로 설정

5. 액티비티 등록

6. 버튼 누를시 또는 화면 이동시 광고 목록 띄우기

7. 포인트 조회, 인출, 아이템 구매 구현

7.1 - 일괄 설치 기능 추가(유저 편의)

7.2 - 자동 인출 또는 인출, 아이템구매 화면 구성

8. proguard 사용시 예외사항 추가
-keep class com.tnkfactory.**


Posted by 후미카
:

디바이스를 회전 시킬때마다 자동으로 회전되는것을 막는 방법이다.


매니페스트에 있는 <Activity> 안에 한줄의 코드를 추가 해 주면 된다.


android:screenOrientation="portrait" 


또는

android:screenOrientation="landscape" 



portrait  은 세로모드이고 landscape 는 가로 모드 이다.



Ex)

 <activity

            android:name="com.example"

            android:label="@string/app_name"

            android:screenOrientation="portrait" >

Posted by 후미카
:

언어 설정 정보 가져오는 소스


Locale locale = this.getResources( ).getConfiguration( ).locale;
locale.getLanguage( );


한국은 kr 이 반환된다. 


locale 코드

http://developer.android.com/reference/java/util/Locale.html

'Development > Android' 카테고리의 다른 글

TNK 개발 순서  (0) 2013.10.01
안드로이드 화면 회전 금지  (0) 2013.09.12
RuntimeException: Unable to start activity ComponentInfo  (0) 2013.08.22
안드로이드 인앱 빌링 v3  (0) 2013.08.22
Android proguard 적용하기  (0) 2013.08.09
Posted by 후미카
:

Activity 를 매니페스트에 등록 해주지 않고 생성 했을때 나타나는 에러메세지

<activity android:name="com.example.TestActivity"/>

와 같이 매니페스트에 Activity 를 추가 해주면 해결된다.

"com.example.TestActivity" 부분에는 생성 하려는 액티비티명을 넣어주면 된다

'Development > Android' 카테고리의 다른 글

안드로이드 화면 회전 금지  (0) 2013.09.12
안드로이드 언어코드 가져오기  (0) 2013.09.03
안드로이드 인앱 빌링 v3  (0) 2013.08.22
Android proguard 적용하기  (0) 2013.08.09
APK 파일 디컴파일 방법  (1) 2013.08.09
Posted by 후미카
:

1. SDK 매니저에서 Extras 안에잇는 Google Play Billing Library 설치


2. IInAppBillingService.aidl 파일을 com.android.vending.billing 패키지 안에 복사한다.

3. 매니페스트에 퍼미션을 추가

<uses-permission android:name="com.android.vending.BILLING" />


'Development > Android' 카테고리의 다른 글

안드로이드 언어코드 가져오기  (0) 2013.09.03
RuntimeException: Unable to start activity ComponentInfo  (0) 2013.08.22
Android proguard 적용하기  (0) 2013.08.09
APK 파일 디컴파일 방법  (1) 2013.08.09
admob 추가 방법  (0) 2013.08.05
Posted by 후미카
:

project.properties 에 있는

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

부분의 주석을 해제해주면 완료된다.



proguard 적용 후 Export 시 에러 대처법

\sdk\tools\proguard 폴더 내의 proguard=android 안에 오류 패키지명 앞자리를 모두 적어준다


ex)

# The support library contains references to newer platform versions.

# Don't warn about those in case this app is linking against an older

# platform version.  We know about them, and they are safe.

-dontwarn android.support.**

-dontwarn com.badlogic.gdx.**


저장 후 다시 Export

Posted by 후미카
:


jd-gui-0.3.5.windows.zip


dex2jar-0.0.9.15.zip


1. 파일준비

dex2jar 다운로드

jd-gui 다운로드


2.dex2jar.bat 파일 수정

@echo on

set CLASSPATH=

FOR %%i IN ("lib\*.jar") DO CALL "setclasspath.bat" %%i

echo %CLASSPATH%

java -cp "%CLASSPATH%" pxb.android.dex2jar.v3.Main %*


굵게 표시된 부분에 off 되어있는 부분을 on으로 수정


3. apk 파일 확장자명을 zip 파일로 변경한뒤 압축풀기

4. classes.dex 파일을 dex2jar 폴더로 이동

5. cmd 창에서 dex2jar.bat classes.dex 실행

6. jd-gui 에서 classes_dexdex2jar.jar 파일을 불러오기



Posted by 후미카
:
1.매니페스트에 밑줄 굵은부분 추가

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AdmobActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity" 
android:configChanges="keyboard|keyboardHidden|orientation"/> 
</application>
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
</manifest>

 

2. 액티비티의 onCreate에서  아래 와 같이 사용




  AdView adView // (전역변수로 생성)
  String 변수 이름 = admon에서 받은 게시자 ID 입력
 
 adView= new AdView(this, AdSize.BANNER, 게시자 ID);
 LinearLayout layout = xml 의 레이아웃과 연결 (또는 자신이 생성한 layout)
 
layout.add(adView)
 
adView.loadAd(new AdRequest());

 



 

3. 아래와 같이 꼭 적어 줘야 뒤에서 자동 갱신이 안됨



  public void onDestroy(){
     adView.destroy();
     super.onDestroy();
  }




Posted by 후미카
:

abmob (애드몹) 에러 메세지

You must have AdActivity declared in AndroidManifest.xml with configChanges


문제해결

1) activity를 추가 (옵션 정확하게)

<activity android:name="com.google.ads.AdActivity"

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

2) android target 변경 (SdkVersion 15)

<uses-sdk

android:targetSdkVersion="15" />

'Development > Android' 카테고리의 다른 글

RuntimeException: Unable to start activity ComponentInfo  (0) 2013.08.22
안드로이드 인앱 빌링 v3  (0) 2013.08.22
Android proguard 적용하기  (0) 2013.08.09
APK 파일 디컴파일 방법  (1) 2013.08.09
admob 추가 방법  (0) 2013.08.05
Posted by 후미카
:

카테고리

전체보기 (102)
Development (102)
iOS (15)
Android (24)
Java (5)
Unity3d (27)
Photon (1)
C# (1)
C++ (7)
cocos2d-x (14)
etc (8)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

글 보관함