阿里云首页 移动开发平台 mPaaS 相关技术圈

接入 Android 常见问题

查看以下常见问题列表,单击具体的问题即可查看相应解答。

编译时无网络连接

在编译文件时,如果没有网络,很有可能造成编译失败。通过以下步骤,确认编译环境的网络已连接。

  1. 确认已连接到互联网。

  2. 确认未连接网络代理,包括浏览器代理设置、第三方网络代理软件等。

  3. 确认未设置 IDE 代理。

    idea 代理
  4. gradle.properties 文件中,确认未设置 Gradle 代理,即未设置 systemProp.http.proxyHostsystemProp.http.proxyPort 属性。如果有设置,删除相关属性即可。 gradle代理

程序编译失败

如果程序编译失败,可通过以下步骤进行排错与解决。

  1. 根据 编译时无网络连接,确认编译环境网络已正常连接。

  2. 检查 Gradle 执行记录,确认新增的依赖有效。

  3. 检查依赖的 GAV(groupartifactversion)参数设置正确。

    //引用 debug 包group:artifact:version:raw@jar
    bundle "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT:raw@jar"
    //引用 release 包group:artifact:version@jar
    bundle "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT@jar"
    manifest "com.app.xxxxx.xxxx:test-build:1.0-SNAPSHOT:AndroidManifest@xml"
  4. 在系统自带的命令行工具中,执行以下命令,导出 Gradle 执行记录:

    // 执行命令前,确认未定义 productflavor 属性。否则,命令会运行失败。
    // 以下命令将执行记录导出至 log.txt 文件中。
    gradle buildDebug --info --debug -Plog=true > log.txt
  5. 查看步骤 4 中导出的记录文件,在最新生成的记录中,会看到类似如下记录,表示新增的依赖不存在。

    Caused by: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find nebulacore-build-AndroidManifest.xml (com.alipay.android.phone.wallet:nebulacore-build:1.6.0.171211174825).
    Searched in the following locations:
    http://mvn.cloud.alipay.com/nexus/content/repositories/releases/com/alipay/android/phone/wallet/nebulacore-build/1.6.0.171211174825/nebulacore-build-1.6.0.171211174825-AndroidManifest.xml
         at org.gradle.internal.resolve.result.DefaultBuildableArtifactResolveResult.notFound(DefaultBuildableArtifactResolveResult.java:38)
         at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveArtifactFromCache(CachingModuleComponentRepository.java:260)
  6. 访问该记录中的 HTTP 链接(如上一步所列记录中的第 3 行)并登录,查看 Maven 仓库。

    说明

    您可以在 build.gradle 文件中查看登录时需要提供的账户名和密码。

  7. 执行以下命令刷新 gradle 缓存。

    gradle clean --refresh-dependencies
  8. 如果 Maven 仓库有对应依赖,删除个人目录下 Gradle 缓存,然后重新编译。删除 Gradle 缓存的方法如下:

    • 在 macOS、Linux、Unix 等系统中运行以下命令。

      cd ~
      cd .gradle
      cd caches
      rm -rf modules-2
    • 在 Windows 系统中,默认情况下,路径定位到 C:\Users\\{用户名}\\.gradle\caches,删除 modules-2 文件夹。

编译过程中出现卡顿

如果编译过程卡顿(等待超过 20 分钟),您可以通过以下步骤提高编译效率。

  1. 根据 上文步骤,确认编译环境网络已正常连接。

  2. 确认防火墙已关闭。

  3. 确认未开启 IntelliJ IDEA 编译器的网络配置。

  4. 在代码中,提前加载 Maven 镜像。例如,以下是阿里云加载 Maven 镜像的代码。

     apply plugin: 'maven'
     buildscript {
         repositories {
             mavenLocal()
    
     // 开始先加载 Maven 镜像
             maven{ url 'http://m