zoukankan      html  css  js  c++  java
  • Android中用友盟实现QQ的第三方登录

    //首先应该去友盟的官网注册你的账号,创建一个应用,获得它的APPkey,也可以用它的API上的appkey,下载SDK,下面根据API文档一步步实现就行了。

    //下面是友盟的APi文档

    1.  产品概述

    关于分享和授权的sdk接口,我们在v5.0做出了巨大的改变,精简了接口调用的代码。并将分享授权,与评论等功能做出了隔离,使结构更加清晰。所以本版本的功能也只有分享与授权并无其他功能,请开发者注意。

    注意:本文示例代码只有分享与授权功能,并对接口进行了调整,如需要原功能的开发者,请继续使用v4.3.0版本。

    2.  获取友盟Appkey

    如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它.

    如果你尚未在友盟注册开发者账号,需要先注册,注册之后登录你的账号,点击添加新应用,填写完应用基本信息后,将进入"下载SDK并添加代码"页面,此页面即可得到Appkey。

    3.  下载并安装SDK

    • 下载SDK最新版
    • 添加代码和资源引用,我们提供了添加资源文件和jar文件的两种方式,可以根据需求选择

    解压SDK压缩包,将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中)

    解压SDK压缩包,将文件夹中的social_sdk_library_project文件夹导入Eclipse,并在您的工程中添加对此项目的引用即可。

    • AndroidManifest配置

    其中增加一个activity

    <activity           
    android:name="com.umeng.socialize.editorpage.ShareActivity"
    android:theme="@style/Theme.UMDefault"
    android:excludeFromRecents="true"/>
    
    

    设置友盟appid

    <meta-data
    android:name="UMENG_APPKEY"
    android:value="4eaee02c527015373b000003" >
    </meta-data>
    
    

    增加权限

    为了适配新的android 6.0 permission系统,你需要加入requestPermission()方法来获取权限, 详细方法请参照:https://developer.android.com/training/permissions/requesting.html

    请先升级最新版android-support-v4.jar包如果你想适配低版本的系统。 把以下代码加入到你的build.gradle文件中,如果你用的是android studio

        dependencies {
        ...
        compile "com.android.support:support-v4:23.3.0"
    }
    
    
    
        //可以将一下代码加到你的MainActivity中,或者在任意一个需要调用分享功能的activity当中
        String[] mPermissionList = new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS};
            ActivityCompat.requestPermissions(MainActivity.this,mPermissionList, 100);
    
    
    
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    
    
    • 针对不平台所需要添加的数据

    按照自己需要的平台添加对应的配置

    微信平台

    <activity
                android:name="com.umeng.soexample.wxapi.WXEntryActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    
    

    新浪微博

    <activity
                android:name=".WBShareActivity"
                android:configChanges="keyboardHidden|orientation"
                android:screenOrientation="portrait" >
                <intent-filter>
                    <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity> 
    <activity
                android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
                android:configChanges="keyboardHidden|orientation"
                android:windowSoftInputMode="adjustResize"
                android:exported="false" >
            </activity>
            <service 
                android:name="com.sina.weibo.sdk.net.DownloadService"
                android:exported="false">
            </service>
    
    

    人人网

    <activity
                android:name="com.renn.rennsdk.oauth.OAuthActivity"
                android:configChanges="orientation|navigation|keyboardHidden" />
    
    

    QQ、Qzone

    <activity
      android:name="com.tencent.tauth.AuthActivity"
      android:launchMode="singleTask"
      android:noHistory="true" >
    <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="tencent100424468" />
    </intent-filter>
    </activity>
    <activity          
        android:name="com.tencent.connect.common.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    
    

    支付宝

    <activity
                android:name=".apshare.ShareEntryActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Translucent.NoTitleBar" />      
    
    

    谷歌地图

    <uses-library
                android:name="com.google.android.maps"
                android:required="false" />
    <uses-library android:name="android.test.runner" />
    
    

    facebook

    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <provider         
        android:name="com.facebook.FacebookContentProvider"         
        android:authorities="com.facebook.app.FacebookContentProvider+appid"
        android:exported="true" />
    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
    
    

    4.  初始化配置

    4.1  各个平台的配置,建议放在全局Application或者程序入口

    
    PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
           //微信 appid appsecret
    PlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");
           //新浪微博 appkey appsecret
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); 
            // QQ和Qzone appid appkey     
    PlatformConfig.setAlipay("2015111700822536");
            //支付宝 appid
    PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
            //易信 appkey      
    PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
            //Twitter appid appkey
    PlatformConfig.setPinterest("1439206");
            //Pinterest appid 
    PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
            //来往 appid appkey
    
    
    • 说明:有些平台的分享时通过调起本地客户端的形式完成的,因此,并不需要appid,但是诸如需要使用第三方公司api的平台,新浪,腾讯等,是需要去申请appkey的。其实新浪微博可以把appid等配置在代码中,也可在友盟后台中设置,豆瓣和人人网只能在友盟后台设置。其它需要配置appid的平台,如qq,微信,易信,twitter等都需要在代码中设置。还有一部分平台需要在mainfest中配置,前面已经提到过。

    5.  第三方登录

    目前友盟社会化组件支持的第三方登录平台为:新浪微博、腾讯微博、QQ、QQ空间、微信、人人网、豆瓣、Facebook、Twitter。

    第三方登录功能主要通过授权和获取用户信息这两个接口实现

    5.1  授权

    首先获取UMShareAPI

    mShareAPI = UMShareAPI.get(this);

    选取需要授权的平台,并进行授权,其中umAuthLisrener是回调监听器,需要开发者根据需求重新定义

    
    SHARE_MEDIA platform = SHARE_MEDIA.SINA; 
    mShareAPI.doOauthVerify(this, platform, umAuthListener)
    
    private UMAuthListener umAuthListener = new UMAuthListener() {
            @Override
            public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
                Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onError(SHARE_MEDIA platform, int action, Throwable t) {
                Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onCancel(SHARE_MEDIA platform, int action) {
                Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
            }
        };
    
    

    对于删除授权使用的接口是

    mShareAPI.deleteOauth(AuthActivity.this, platform, umdelAuthListener);

    不难看出与授权的参数是一样的。

    注意要重写

    onActivityResult()
    
         @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            mShareAPI.onActivityResult(requestCode, resultCode, data);
        } 
    
    

    5.1.1  获取客户端安装信息

    使用如下接口

    mShareAPI.isInstall(this, SHARE_MEDIA.WEIXIN)

    5.2  获取用户信息

    已授权的平台,可以获取用户信息(新浪微博可以获取用户好友列表) 实现的方法与授权和解除授权类似:

    mShareAPI = UMShareAPI.get(this);

    初始化UMShareAPI,然后进行用户信息获取:

    mShareAPI.getPlatformInfo(UserinfoActivity.this, platform, umAuthListener);

    注意必须在调用授权接口mShareAPI.doOauthVerify(this, platform, umAuthListener) 之后才可以获取用户信息,建议在doOauthVerify方法完成的onComplete方法中调用获取用户信息方法,返回的所有信息都在Map data)集合中获取

    对于新浪微博好友列表的获取使用的接口是:

    mShareAPI.getFriend(UserinfoActivity.this, SHARE_MEDIA.SINA, umGetfriendListener);

    注意要重写

    onActivityResult()
    
         @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            mShareAPI.onActivityResult(requestCode, resultCode, data);
        } 




    //下面是我做的,可以看一下,看到不足之处,请指出,一起共同学习。(提示我是用Android studio做的,底版的Eclipse好像不行,新版的可以,已试过)
    //---------------------------------------------------------------------------
    新创建一个项目
    //-----------下面的是我的 main.XML------中-------一个Imageview用于显示头像,一个textview用于显示QQ名,一个button登录按钮----------------
    <ImageView android:layout_width="80dp"
    android:layout_height="80dp"
    android:scaleType="fitXY"
    android:id="@+id/iv_image"
    android:src="@mipmap/ic_launcher"/>
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="name"
    android:id="@+id/tv_name"
    android:layout_marginTop="10dp" />
    <Button android:layout_width="70dp"
    android:layout_height="40dp"
    android:text="登录"
    android:id="@+id/bt_denglu"
    android:layout_marginTop="10dp"
    android:gravity="center"/>


    //---------------------------下面是打开我下载的Sdk,把main下的 libs和res 全部复制到对应的libs下和res下面,2:把platforms下的qq_qzone下的libs和res同样复制添加到对应的下面
    注意:libs下有一个Android—support-v4,这个不用复制了,studio自带了,我复制添加进去之后运行,结果报错了)-----------------------------------------------------------------
    //下面是报错
    Error:Error converting bytecode to dex:
    Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:Program FilesJavajdk1.8.0_66injava.exe'' finished with non-zero exit value 2


    v4包重复


    //------------下面就是在项目中新建一个类Myaplication 继承aplication实现onCreate的方法,把下面那行代码复制进去------------------------------

    public class Myaplication extends Application {
    @Override
    public void onCreate() {
    super.onCreate();
    //QQ
    PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");

    }
    }

    //----------------下面就是在清单文件中,加入权限--------------------------------
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    application标签下写入android:name=".Myaplication",这是刚创建那个类
    
    
    <application
    android:name=".Myaplication"
     
    <!--友盟的activity--放入application标签中>
    <activity
    android:name="com.umeng.socialize.editorpage.ShareActivity"
    android:theme="@style/Theme.UMDefault"
    android:excludeFromRecents="true"/>

    <meta-data
    android:name="UMENG_APPKEY"
    android:value="57d7fd70e0f55af86200130c" >
    </meta-data>

    <!-- QQ的activity-->
    
    
    <activity
    android:name="com.tencent.tauth.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true" >
    <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="tencent100424468" />
    </intent-filter>
    </activity>
    <activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />



    //---------整体就是下面这样--------------------
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bw.com.disanfangdenglu">

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

    <application
    android:name=".Myaplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <!--友盟的activity-->
    <activity
    android:name="com.umeng.socialize.editorpage.ShareActivity"
    android:theme="@style/Theme.UMDefault"
    android:excludeFromRecents="true"/>

    <meta-data
    android:name="UMENG_APPKEY"
    android:value="57d7fd70e0f55af86200130c" >
    </meta-data>
    <!-- QQ的activity-->
    <activity
    android:name="com.tencent.tauth.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true" >
    <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="tencent100424468" />
    </intent-filter>
    </activity>
    <activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    </application>

    </manifest>
    //--------------打开 values下的string--------------------------------

    <resources>
    <string name="app_name">DiSanFangDengLu</string>
    <!--加入下面这个-->
    <string name="mShareAPI">DiSanFangDengLu</string>
    </resources>
    //----------把studio换成project下,在build.gradle中加入下面内容---------只有studio中才加这个,eclipse不用------------------
    allprojects {
    repositories {
    jcenter()
    }
    }



    //-----------下面就是mainActivity了--------可以获得用户QQ名、和头像-------------------------
    package com.bw.com.disanfangdenglu;

    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;

    import com.nostra13.universalimageloader.core.DisplayImageOptions;
    import com.nostra13.universalimageloader.core.ImageLoader;
    import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
    import com.umeng.socialize.UMAuthListener;
    import com.umeng.socialize.UMShareAPI;
    import com.umeng.socialize.bean.SHARE_MEDIA;

    import java.util.Map;
    import java.util.Set;

    public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private ImageView iv_image;
    private TextView tv_name;
    private Button bt_denglu;
    private String name;
    private String image_url;
    UMShareAPI mShareAPI;
    private SharedPreferences sp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //创建SharedPreferences保存QQ名、头像
    sp = getSharedPreferences("kk", Context.MODE_PRIVATE);
    //找到控件
    iv_image = (ImageView) findViewById(R.id.iv_image);
    tv_name = (TextView) findViewById(R.id.tv_name);
    bt_denglu = (Button) findViewById(R.id.bt_denglu);
    //设置登录的点击监听事件
    bt_denglu.setOnClickListener(this);
    }

    //实现登录的点击监听事件
    @Override
    public void onClick(View v) {
    switch (v.getId()) {
    case R.id.bt_denglu:
    //友盟分享api
    mShareAPI = UMShareAPI.get(this);
    //分享媒体 把后面改成qq,用什么改成什么
    SHARE_MEDIA platform = SHARE_MEDIA.QQ;
    //友盟API进行核实,调用umAuthListener友盟授权监听
    mShareAPI.doOauthVerify(this, platform, umAuthListener);
    break;

    default:
    break;
    }
    }
    /*private UMAuthListener umAuthListener = new UMAuthListener() {
    @Override//完整的
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
    Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
    }

    @Override//误差
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {
    Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
    }

    @Override//取消
    public void onCancel(SHARE_MEDIA platform, int action) {
    Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
    }
    };*/


    @Override//结果 必须添加的
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mShareAPI.onActivityResult(requestCode, resultCode, data);
    }

    private UMAuthListener umAuthListener = new UMAuthListener() {
    @Override
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
    // Toast.makeText(MainActivity.this, "Authorize succeed", Toast.LENGTH_SHORT).show();
    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
    //友盟API获得平台信息
    mShareAPI.getPlatformInfo(MainActivity.this, platform,
    new UMAuthListener() {

    @Override
    public void onError(SHARE_MEDIA arg0, int arg1, Throwable arg2) {

    }

    @Override
    public void onComplete(SHARE_MEDIA arg0, int arg1, Map<String, String> data) {
    Set<String> set = data.keySet();
    SharedPreferences.Editor edit = sp.edit();
    for (String string : set) {

    // 设置头像
    if (string.equals("profile_image_url")) {
    image_url = data.get(string);
    Log.i("-------image",image_url);
    }
    // 设置昵称
    if (string.equals("screen_name")) {
    name = data.get(string);
    }
    }
    edit.putString("image",image_url);
    edit.putString("name",name);
    edit.commit();
    tv_name.setText(name);
    ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(MainActivity.this));
    DisplayImageOptions options=new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).build();
    ImageLoader.getInstance().displayImage(image_url,iv_image , options);

    }

    @Override
    public void onCancel(SHARE_MEDIA arg0, int arg1) {

    }
    });
    }

    @Override
    public void onError(SHARE_MEDIA platform, int action, Throwable t) {
    //Toast.makeText(MainActivity.this, "Authorize fail", Toast.LENGTH_SHORT).show();
    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onCancel(SHARE_MEDIA platform, int action) {
    Toast.makeText(MainActivity.this, "登录取消", Toast.LENGTH_SHORT).show();
    }
    };

    }

    //--------以上就是所有了,赶快试试吧-----------------------

    //-----------这一点是我多复制进去了一个v4包,删除不了,就在Android在的build.gradle(app)中把v4给删了,然后 clean一下就好了------------------------------- dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile files('libs/umeng_social_sdk.jar')
    compile files('libs/SocialSDK_QQZone_3.jar')
    compile files('libs/open_sdk_r5756.jar')
    compile files('libs/mta-sdk-1.6.2.jar')
    }

     

  • 相关阅读:
    java布尔运算中的短路运算
    java基本数据类型和引用数据类型
    人工智能,自然界四大奥秘之一
    关于PHP导出数据超时的优化
    IDEA 生成返回值对象快捷键(GoLand,pycharm)
    Windows系统Git安装教程(详解Git安装过程)
    电脑锁屏壁纸, 时钟屏保
    常用分布函数的方差和期望机及其性质
    Windows LTSC、LTSB、Server 安装 Windows Store 应用商店
    JavaWeb中编码问题的解决办法(在客户端和服务器之间传入或响应数据后中文乱码; cookie的乱码问题) || Cookie和Session
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/5871926.html
Copyright © 2011-2022 走看看