자바 컴파일러 버전이 달라 발생한 에러.

android-async-http-1.4.7.jar는 version 52.0에서 빌드 되었는데.

현재 프로젝트 컴파일할때 사용된 자바 컴파일러 버전은 version 52.0이 아니여서 발생한 문제이다. 

version 52.0은 jdk 1.8 이므로 unsupported major.minor vesison 52.0 숫자에 맞게

jdk 버젼을 맞춰주는 방법으로 이 문제를 해결할 수 있다.

52.0 - jdk 1.8, 51.0 - jdk 1.7, 50.0 - jdk 1.6 으로 보면 될 것 같다.


Posted by 에브리피플
,

티스토어 IAP 구매

Android 2015. 8. 14. 12:15

sendPaymentRequest 파라미터에

product_id=0910?????&appid=OA00??????&product_name=광고제거&tid=&bpinfo=

이런 형식으로 파라미터를 보내주면 구매가 된다



     private Handler mUiHandler = new Handler() {


        @Override

        public void handleMessage(Message msg) {

            if (msg.what == 100) {

                PaymentFragment.this.mLog.setText((String) msg.obj);

            }

            else if (msg.what == 101) {

                final Response response = (Response) msg.obj;

                JSONObject json = new JSONObject();

                try {

                    json.put("appid", mAid.getText().toString().toUpperCase());

                    json.put("txid", response.result.txid);

                    Log.d("Receipt", response.result.receipt.length() + " is the receipt ");

                    json.put("signdata", response.result.receipt);

                } catch (JSONException e) {

                    e.printStackTrace();

                    PaymentFragment.this.mLog

                            .setText("Failed while composing json data for verification receipt.");

                }

                

                ReceiptConfirm rc = new ReceiptConfirm();

                rc.execute((String) json.toString());

            } else if (msg.what == 200) {

                Toast.makeText(PaymentFragment.this.getActivity(), (String) msg.obj,

                        Toast.LENGTH_SHORT).show();

            }

        }

    };

private boolean requestPayment() {

   

        String parameter = makeRequest();

        mUiHandler.obtainMessage(100, parameter).sendToTarget();

        Log.i("IAP", parameter);

//        08-14 12:11:25.964: I/IAP(18268): product_id=0910035790&appid=OA00691495&product_name=광고제거&tid=&bpinfo=


        Bundle req = mPlugin.sendPaymentRequest(parameter,

                new IapPlugin.RequestCallback() {

       

                    @Override

                    public void onResponse(IapResponse data) {

                        if (data == null || data.getContentLength() <= 0) {

                            // TODO Unusual error

                            mUiHandler.obtainMessage(100,

                                    "onResponse() response data is null")

                                    .sendToTarget();

                            return;

                        }

                        

                        // 1. JSON �곗씠�곕� �듯븳 媛앹껜 蹂�솚 �ъ슜 ��original

                        Response response = ConverterFactory.getConverter().fromJson(

                                data.getContentToString());


                        String responseString = data.getContentToString();

                        Logger.v("Response String : "+responseString);



                        if (response == null) {

                            // TODO invalid response data

                            mUiHandler.obtainMessage(100,

                                    "onResponse() invalid response data")

                                    .sendToTarget();

                            return;

                        }


                        // TODO for logging

                        StringBuffer sb = new StringBuffer("onResponse() \n");

                        sb.append("From:" + data.getContentToString())

                                .append("\n")

                                .append("To:" + response.toString());

                        mUiHandler.obtainMessage(100, sb.toString()).sendToTarget();

                

                        // response.result.code

                        if (!response.result.code.equals("0000")) {

                            mUiHandler.obtainMessage(200,

                                    "Failed to request to purchase a item")

                                    .sendToTarget();

                            return;

                        }

                        // response.result.txid

                        // response.result.receipt

                        mUiHandler.obtainMessage(101, response).sendToTarget();


                    }


                    @Override

                    public void onError(String reqid, String errcode,

                            String errmsg) {

                        // TODO Error occurred

                        mUiHandler.obtainMessage(100, "onError() identifier:" + reqid + " code:" + errcode + " msg:" + errmsg)

                        .sendToTarget();

                    }

                });

        

        if (req == null) {

            // TODO request failure

            return false;

        }


        mRequestId = req.getString(IapPlugin.EXTRA_REQUEST_ID);

        if (mRequestId == null || mRequestId.length() == 0) {

            // TODO request failure

            return false;

        }


        return true;

    }



Posted by 에브리피플
,

can't find right android-platform for project 

환경변수 ANDROID_NDK_ROOT 로 만들어서 발생한 문제 NDK_ROOT 하면 정상적으로 됨

또는


환경변수 ANDROID SDK ROOT가 안맞거나..


결론 = 환경 변수가 안맞아서 발생하는 에러

Posted by 에브리피플
,

NetworkChangeReceiver.java

public class NetworkChangeReceiver extends BroadcastReceiver {

 

    @Override

    public void onReceive(final Context context, final Intent intent) {

 

        String status = NetworkUtil.getConnectivityStatusString(context);

 

        Toast.makeText(context, status, Toast.LENGTH_LONG).show();

    }


}


NetworkUtil.java

public class NetworkUtil {

 

    public static int TYPE_WIFI = 1;

    public static int TYPE_MOBILE = 2;

    public static int TYPE_NOT_CONNECTED = 0;

     

     

    public static int getConnectivityStatus(Context context) {

        ConnectivityManager cm = (ConnectivityManager) context

                .getSystemService(Context.CONNECTIVITY_SERVICE);

 

        NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

        if (null != activeNetwork) {

            if(activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)

                return TYPE_WIFI;

             

            if(activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)

                return TYPE_MOBILE;

        } 

        return TYPE_NOT_CONNECTED;

    }

     

    public static String getConnectivityStatusString2(Context context) {

        int conn = NetworkUtil.getConnectivityStatus(context);

        String status = null;

        if (conn == NetworkUtil.TYPE_WIFI) {

            status = "Wifi enabled";

        } else if (conn == NetworkUtil.TYPE_MOBILE) {

            status = "Mobile data enabled";

        } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {

            status = "Not connected to Internet";

        }

        return status;

    }


public static String getConnectivityStatusString(Context context) {

    int conn = NetworkUtil.getConnectivityStatus(context);

       String status = null;

       if (conn == NetworkUtil.TYPE_WIFI) {

           status = "Wifi enabled";

       } else if (conn == NetworkUtil.TYPE_MOBILE) {

           status = "Mobile data enabled";

       } else if (conn == NetworkUtil.TYPE_NOT_CONNECTED) {

           status = "Not connected to Internet";

       }

       return status;

}

}


AndroidManifest.xml

  <receiver

            android:name="com.Jni.unitys.NetworkChangeReceiver"

            android:label="NetworkChangeReceiver" >

            <intent-filter>

                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />

            </intent-filter>

        </receiver>

  <uses-permission android:name="android.permission.INTERNET" />

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



Posted by 에브리피플
,

상태바를 없애려는 액티비티 상속을 ActionBarActivity -> Activity로 변경한다.

'Android' 카테고리의 다른 글

can't find right android-platform for project  (0) 2015.07.21
네트워크 상태 실시간 체크  (0) 2015.06.26
jni fatal signal  (0) 2015.02.18
Android studio Admob 광고 달기  (0) 2015.02.06
페이스북 로그인 연동  (0) 2015.02.04
Posted by 에브리피플
,

jni fatal signal

Android 2015. 2. 18. 18:34

jni fatal signal

jni연동중 Fatal Signal ??로 이유없이 앱이 죽는 현상 
어떠한 이유인지 대강 볼 수 있는 에러 제목.
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt */
#define SIGQUIT 3 /* quit */
#define SIGILL 4 /* illegal instruction (not reset when caught) */
#define SIGTRAP 5 /* trace trap (not reset when caught) */
#define SIGABRT 6 /* abort() */
#if defined(_POSIX_C_SOURCE)
#define SIGPOLL 7 /* pollable event ([XSR] generated, not supported) */
#else /* !_POSIX_C_SOURCE */
#define SIGIOT SIGABRT /* compatibility */
#define SIGEMT 7 /* EMT instruction */
#endif /* !_POSIX_C_SOURCE */
#define SIGFPE 8 /* floating point exception */
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* segmentation violation */
#define SIGSYS 12 /* bad argument to system call */
#define SIGPIPE 13 /* write on a pipe with no one to read it */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal from kill */
#define SIGURG 16 /* urgent condition on IO channel */
#define SIGSTOP 17 /* sendable stop signal not from tty */
#define SIGTSTP 18 /* stop signal from tty */
#define SIGCONT 19 /* continue a stopped process */
#define SIGCHLD 20 /* to parent on child stop or exit */
#define SIGTTIN 21 /* to readers pgrp upon background tty read */
#define SIGTTOU 22 /* like TTIN for output if (tp->t_local&LTOSTOP) */
#if !defined(_POSIX_C_SOURCE)
#define SIGIO 23 /* input/output possible signal */
#endif
#define SIGXCPU 24 /* exceeded CPU time limit */
#define SIGXFSZ 25 /* exceeded file size limit */


Posted by 에브리피플
,

build.gradle

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:21.0.3'

    compile 'com.google.android.gms:play-services:6.5.87'

}

MainActivity.java

  adView = new AdView(this);//new AdView(this);

        adView.setAdUnitId("ca-app-pub-???????????????/5335932412");

        adView.setAdSize(AdSize.SMART_BANNER);


        layout = (RelativeLayout) findViewById(R.id.mainLayout);

        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(

                RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

        layout.addView(adView, params);

        //39DDB5F0BC9A833F635156A14F3C

        adRequest = new AdRequest.Builder()

        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)

        .addTestDevice("39DDB255B5F0BC9A833F635156A14F3C").build();

        adView.loadAd(adRequest);


        adView.setAdListener(new AdListener() {

            @Override

            public void onAdLoaded() {

                super.onAdLoaded();

                Log.e("adView", "onLoad");

                layout.setVisibility(View.VISIBLE);

            }

        });


AndroidManifest.xml

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

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

            android:theme="@android:style/Theme.Translucent" />

        <meta-data android:name="com.google.android.gms.version"

            android:value="@integer/google_play_services_version"/>

</application>

 <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Posted by 에브리피플
,
1. 웹 설정

2. 키해시 등록

디버그 키 해시 얻기

try {

PackageInfo info = getPackageManager().getPackageInfo(

getPackageName(), PackageManager.GET_SIGNATURES);

for (Signature signature : info.signatures) {

MessageDigest md;

md = MessageDigest.getInstance("SHA");

md.update(signature.toByteArray());

String something = new String(Base64.encode(md.digest(), 0));

Log.d("Hash key", something);

}

} catch (Exception e) {

// TODO Auto-generated catch block

Log.e("name not found", e.toString());

}

3.FaceBookSDK 라이브러리 프로젝트에 임포트

4. 페이스북 로그인 호출

Session.openActiveSession(this, true, new Session.StatusCallback() {

            // callback when session changes state

            @Override

            public void call(final Session session, SessionState state, Exception exception) {

                if (session.isOpened()) {

                    Request.newMeRequest(session, new Request.GraphUserCallback() {

                          // callback after Graph API response with user object

@Override

public void onCompleted(GraphUser user,

Response response) {

// TODO Auto-generated method stub

if (user != null) {

                             Log.d("Facebook", "Hello " + user.getName() + "! Id: "+user.getId());

                             

                             String mail = (String)response.getGraphObject().getProperty("email");

                             if (mail == null) {

                                 mail = "null";

                             }

                           }

}

                    }).executeAsync();


                }

            }

          });



Posted by 에브리피플
,

andorid.mk 전체 빌드

Android 2015. 1. 30. 18:44

LOCAL_PATH := $(call my-dir)


include $(CLEAR_VARS)


$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)


LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

     

CLASSES_FILES   := $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)

CLASSES_FILES   := $(CLASSES_FILES:$(LOCAL_PATH)/%=%)


LOCAL_SRC_FILES := hellocpp/main.cpp \

$(CLASSES_FILES) \


LOCAL_LDLIBS := -llog


LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \


LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static


include $(BUILD_SHARED_LIBRARY)


$(call import-module,.)


Posted by 에브리피플
,