配置
一绷耍、根目錄的build.gradle的buildscript,allprojects的repositories都得加上
maven { url 'https://dl.bintray.com/umsdk/release' }
完整示例:
buildscript {
repositories {
maven { url 'https://dl.bintray.com/umsdk/release' }
maven{ url 'http://maven.aliyun.com/repository/public/'}
maven{ url 'http://maven.aliyun.com/repository/google/'}
maven{ url 'http://maven.aliyun.com/repository/gradle-plugin/'}
maven{ url 'http://maven.aliyun.com/repository/central/'}
//jcenter倉庫
jcenter{
url 'http://jcenter.bintray.com'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url 'https://dl.bintray.com/umsdk/release' }
maven{ url 'http://maven.aliyun.com/repository/public/'}
maven{ url 'http://maven.aliyun.com/repository/google/'}
maven{ url 'http://maven.aliyun.com/repository/gradle-plugin/'}
maven{ url 'http://maven.aliyun.com/repository/central/'}
jcenter{
url 'http://jcenter.bintray.com'
}
maven { url "https://jitpack.io" }
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
二、app下的build.gradle相應(yīng)配置
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.xf.activity"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//要添加下面這句代碼,否則會報(bào)如下錯誤
//Manifest merger failed : Attribute data@scheme at AndroidManifest.xml requires a placeholder substitution but no value for <qqappid> is provided
manifestPlaceholders = [
qqappid : "1106087xxx",//友盟QQ分享,登錄,騰訊開發(fā)平臺qq的appid
]
}
signingConfigs {
signingConfig {
keyAlias 'chuangqi'
keyPassword 'xxx'
storeFile file('chuangqi.jks')
storePassword 'xxx'
}
}
buildTypes {
release {
minifyEnabled true//是否混淆
zipAlignEnabled true//Zipalign優(yōu)化
shrinkResources true//去掉不用資源
signingConfig signingConfigs.signingConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false//是否混淆黍聂,測試服也需要開啟混淆避免在測試沒發(fā)現(xiàn)混淆問題,在線上出現(xiàn)粉渠。關(guān)閉可以編譯快點(diǎn)
zipAlignEnabled false//Zipalign優(yōu)化
shrinkResources false//去掉不用資源
signingConfig signingConfigs.signingConfig
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
//這個(gè)正常大點(diǎn)的項(xiàng)目都會引入分冈,因?yàn)榉椒〝?shù)會超過65536個(gè)
api 'com.android.support:multidex:1.0.3'
api 'com.umeng.umsdk:common:2.2.5'
api 'com.umeng.umsdk:share-core:7.0.2'
api 'com.umeng.umsdk:share-board:7.0.2'
api 'com.umeng.umsdk:share-qq:7.0.2'
api 'com.umeng.umsdk:share-wx:7.0.2'
}
注意點(diǎn):
1、debug和release都用上signingConfig,這樣debug直接跑到手機(jī)也是正常調(diào)起授權(quán)界面的
2霸株、manifestPlaceholders必須配置且寫上qqappid雕沉,單詞不能錯。
3去件、applicationId和xxx.jks都是你用在開發(fā)平臺申請的包名和簽名文件
三坡椒、Application類配置
public class MyApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
initUMeng();
}
private void initUMeng(){
UMConfigure.setLogEnabled(true);
//UMConfigure.init(this, "5cb81fd40cafb26b4bxxxxx", "umeng", UMConfigure.DEVICE_TYPE_PHONE, "55d672d2757447217577bcbd6dxxxxx");
//可以不用友盟上的AppSecret
UMConfigure.init(this, "5cb81fd40cafb26b4xxxxx", "umeng", UMConfigure.DEVICE_TYPE_PHONE, "");
//微信開發(fā)平臺申請appkey appsecret
PlatformConfig.setWeixin("wx3e38bb53bxxxxx", "626626abb26b594fb1eb58fcadxxxxx");
//QQ開發(fā)平臺申請的appId
PlatformConfig.setQQZone("11060xxxx", "Ga8WDL0MOfxxxx");
}
}
注:代碼中的xxxx為了保密,記得換成你項(xiàng)目去對應(yīng)開發(fā)平臺申請得來的appid,appsecret
使用
Activity開始使用
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//qq登錄
findViewById(R.id.tv_qq_login).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
authorization(SHARE_MEDIA.QQ);
}
});
//微信登錄
findViewById(R.id.tv_wx_login).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
authorization(SHARE_MEDIA.WEIXIN);
}
});
}
/**
* @desc : 獲取授權(quán)信息
* @author : congge on 2020-09-28 19:59
**/
private void authorization(SHARE_MEDIA share_media){
UMShareAPI.get(this).getPlatformInfo(this, share_media, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA share_media) {
}
@Override
public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
//這里獲取授權(quán)得來的信息
Log.i("onComplete",map.get("uid")+"\t"+map.get("name")+"\t"+map.get("gender")+"\t"+map.get("iconurl"));
}
@Override
public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
}
@Override
public void onCancel(SHARE_MEDIA share_media, int i) {
}
});
}
}
到此就完成了友盟QQ尤溜,微信登錄了倔叼。
還有個(gè)混淆文件,你看下友盟社會化分享下的混淆文件宫莱,復(fù)制過來即可