当前位置: 首页 > news >正文

用Android studio运行海外极光推送engagelab安卓的SDK打apk安装包

背景

由于海外极光推送engagelab没有国内这种可以直接下载demo的安装包,需要我们用Android studio运行下载的SDK里面example项目文件打出安装包。

  • 国内极光demo下载路径
    在这里插入图片描述

  • 海外极光推送engagelab安卓的SDK下载路径(登录平台->开通AppPush功能->新建应用)
    在这里插入图片描述

运行项目

  1. 解压下载的sdk压缩包

  2. 打开Android studio选择导入example文件夹
    在这里插入图片描述

  3. 等待Android studio识别到项目后同步gradle,项目同步会遇到很多问题,详见问题排坑

  4. 项目同步成功后如果能成功运行,那么就可以打apk包了,在 Android Studio 中点击 Build → Build Bundle(s) / APK(s) → Build APK(s) 后,生成的 APK 文件 默认存放路径在<你的项目根目录>/app/build/outputs/apk/<构建变体>/

  5. 记得将包名和appkey改成你创建的应用对应的值
    在这里插入图片描述

验证应用

  1. 将apk安装到测试机上,联网后打开app,将获取的注册id(rid)
    在这里插入图片描述

  2. 将注册id填到创建的应用控制台中,创建推送通知信息
    在这里插入图片描述

  3. 点击推送,app将会收到我们配置的信息
    在这里插入图片描述

问题排坑

  1. java的jdk版本不一致,需要配置成正确的版本,我的是11
  • settings->build tools->gradle
    在这里插入图片描述

  • 模块级build.gradle文件中
    在这里插入图片描述

  1. 由于网络问题导致 Gradle 从官方源和 Maven 官方仓库下载依赖包。下载失败,国内访问官方源经常会出现连接超时的情况。需要在项目级build.gradle文件和全局配置文件gradle-wrapper.properties中换阿里镜像。
  • 报错信息
Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-6.5-all.zip'.
Reason: java.net.SocketTimeoutException: Connect timed out
  • 打开你项目根目录下的 build.gradle(项目级),找到 repositories 配置,添加或替换为国内镜像源:
    在这里插入图片描述
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {repositories {// 使用阿里云镜像maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google' }google()mavenCentral()// huawei push needmaven { url 'https://developer.huawei.com/repo/' }}dependencies {classpath 'com.android.tools.build:gradle:7.4.2'// google push need,and google push need AndroidXclasspath 'com.google.gms:google-services:4.3.15'// huawei push needclasspath 'com.huawei.agconnect:agcp:1.6.0.300'}
}allprojects {repositories {maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.aliyun.com/repository/google' }google()mavenCentral()// huawei push needmaven { url 'https://developer.huawei.com/repo/' }}
}
  • 打开项目根目录下的文件:gradle/wrapper/gradle-wrapper.properties,将其修改为国内镜像地址
    在这里插入图片描述
#Mon Dec 07 16:34:01 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.1-all.zip
#distributionUrl=https\://srvices.gradle.org/distributions/gradle-6.5-all.zip
  1. 可能会遇到关于 R8(代码混淆) 的报错,R8(代码混淆) 的配置或依赖未正确解析时,会导致任务创建失败。因为sdk中用的是 Gradle 6.5,这个版本较旧,可能与我的jdk11不兼容,需要升级,需要修改Gradle为7.6.1和Android Gradle Plugin (AGP)为7.4.2
  • 报错信息
Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
Could not create task ':app:minifyDebugWithR8'.
Cannot query the value of this provider because it has no value available.
Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
Could not create task ':app:minifyReleaseWithR8'.
Cannot query the value of this provider because it has no value available.
  • 修改 gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.1-all.zip

在这里插入图片描述

  • 修改项目根目录 build.gradle:
classpath 'com.android.tools.build:gradle:7.4.2'

在这里插入图片描述
总是就是你的jdk,Gradle和Android Gradle Plugin (AGP)三者的版本需要兼容
6. Failed to find Platform SDK with path: platforms;android-30,这个错误的意思是:当前项目把 compileSdkVersion 设成了 30,但你的电脑里并没有下载 Android 30(即 Android 11)对应的 Platform SDK,所以编译器找不到 android-30 的 android.jar。
解决方法
(1)打开 Android Studio。
(2)点击菜单栏 Tools → SDK Manager(或 File → Settings → Appearance & Behavior → System Settings → Android SDK)。
(3)进入 SDK Platforms 标签页。
(4)勾选右侧 Show Package Details。
(5)在列表中找到 Android 11.0 ®,勾选 Android 11.0 ® → Android SDK Platform 30。
(6)点击 Apply 或 OK,等待下载完成即可 。
在这里插入图片描述
7. 解决完问题,同步并重新构建项目

  • 回到 Android Studio,点击 File → Sync Project with Gradle Files。
  • 然后再执行 Build → Rebuild Project。

文章转载自:

http://7ZOS0X9U.sLqzb.cn
http://M0UxmV7Y.sLqzb.cn
http://njKZAknm.sLqzb.cn
http://idREE3gl.sLqzb.cn
http://Qjgsbm4m.sLqzb.cn
http://BzZI1fBt.sLqzb.cn
http://ehqCuhD6.sLqzb.cn
http://DliOmk2u.sLqzb.cn
http://H84hUt7d.sLqzb.cn
http://BgHpgVv4.sLqzb.cn
http://TtOhMAGU.sLqzb.cn
http://jt1Hmqmw.sLqzb.cn
http://Kv24ZptA.sLqzb.cn
http://ylYJSKLn.sLqzb.cn
http://d09OyLd3.sLqzb.cn
http://E4knkbT9.sLqzb.cn
http://rU7DlqJn.sLqzb.cn
http://jrIMHcFB.sLqzb.cn
http://7AIVMzBX.sLqzb.cn
http://R1XoYqkO.sLqzb.cn
http://6qdcNlut.sLqzb.cn
http://caSgI3EQ.sLqzb.cn
http://q5ImZE9p.sLqzb.cn
http://N3ImStbC.sLqzb.cn
http://ZReB2GOY.sLqzb.cn
http://l3CZQs27.sLqzb.cn
http://NrO84QVG.sLqzb.cn
http://MBtkbB9q.sLqzb.cn
http://cxRONCGU.sLqzb.cn
http://819A6jLL.sLqzb.cn
http://www.dtcms.com/a/370325.html

相关文章:

  • 记录一下k佬 lvgl micropython的sdcard初始化问题
  • Nmap使用手册
  • HTB devvortex
  • FakeYou:语音克隆/个性化语音生成工具
  • 木棉EZ100-Pro 15.5G矿机参数解析:Etchash算法与高效能耗
  • OpenAI新论文:Why Language Models Hallucinate
  • Compose笔记(四十九)--SwipeToDismiss
  • Coze源码分析-资源库-删除插件-前端源码-核心组件实现
  • 主流的开源协议(MIT,Apache,GPL v2/v3)
  • 计算机原理(二)
  • 算法题(200):最大子段和(动态规划)
  • vue3图标终极方案【npm包推荐】vue3-icon-sui(含源码详解)
  • 当小智 AI 遇上数字人,我用 WebRTC 打造实时音视频应用
  • 后端(JDBC)学习笔记(CLASS 1):基础篇(一)
  • 3分钟快速入门WebSocket
  • ElasticSearch 基础内容深度解析
  • 行为式验证码技术解析:滑块拼图、语序选词与智能无感知
  • CAN总线学习
  • 02.继承MonoBehaviour的单例模式基类
  • 【CSS,DaisyUI】自定义选取内容的颜色主题
  • C. 引入位置编码是不是3D的
  • Docker学习笔记-网络类型
  • 进程状态深度解析:从操作系统原理到Linux实践
  • C++:深入剖析vector及其模拟实现
  • ClickHouse 中的物化列与物化视图
  • 贪心算法应用:交易费优化问题详解
  • STL模版在vs2019和gcc中的特殊问题
  • 《Java线程池面试全解析:从原理到实践的高频问题汇总》
  • Compose笔记(四十八)--PullRefresh
  • 性能优化的边界-不该优化什么