机智云平台android源码二次开发时在android studio无法运行

解决:机智云平台android源码二次开发时在android studio无法运行

1、现象

由于学习需要,在Android开发知识几乎为零的基础上,借助机智云平台生成所需功能的代码包。但是在导入Android Studio(版本3.6)时却无法运行,现象是运行按钮为灰色,并且Edit Configuration框无任何项目

2、一步一步修改

2.1、第一次打开文件时,一直处于加载状态,如下图:
在这里插入图片描述
sync一直处于Download状态,不要抱着侥幸心理去等待了。。。

原因:国内访问jcenter太慢,甚至连接不上,就会报各种关于依赖更新失败的错误。以前oschina(也就是开源中国)提供了jcenter的镜像地址,然而不幸的是因为各种原因,最近停止服务了。

解决办法:https://blog.csdn.net/ScarletMeCarzy/article/details/78471446
提示:修改完成后,退出AS重进。

以下是我修改完成后的代码:

文件位置 build.gradle(位于AndroidStudio文件夹而不是app文件夹)
注意:代码中: classpath ‘com.android.tools.build:gradle:3.6.0’ 的3.6.0在2.2解释,因机而异(软件自动更改)。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2.2 gradle版本匹配问题(本人在这里卡了很久)(完成此步灰色按钮变为可运行)
这个是很关键的一步。下面的官方网址可以查到 gradle插件(tools.build)跟gradle版本号对应关系:
https://developer.android.google.cn/studio/releases/gradle-plugin#updating-plugin
说明一下:网上其他地方找的解决办法均为手动下载,但是本人按照网上说的下载后,依旧sync报错:
Failed to apply plugin [id ‘com.android.application’]
最后的解决办法是:打开Files—Project Structure选择版本让电脑自动下载(第一步中已经切换到了阿里云镜像,所以下载速度起飞)

下图是我的对应(注意NDK的路径默认是未设置,需要自己设置):
在这里插入图片描述
在这里插入图片描述
2.3 做好上面两步,sync编译成功,然后USB连接手机(手机开启USB调试模式)点击运行,出现警告
在这里插入图片描述
注意:此警告不能忽略,不然手机app会闪退。
原因:配置文件中的API已经过期,应对过期的API进行修改。
参考:https://blog.csdn.net/weixin_40845165/article/details/89213528
参考:https://blog.csdn.net/weixin_44135826/article/details/105201233?fps=1&locationNum=2
以下是本人代码:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion '29.0.3'     //这里是我下载的工具版本,看自己android studio下载的什么版本,最后会讲在哪里看自己的buildTools版本
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.gizwits.opensource.appkit"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "2.5.1.072715"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:25.3.1'
    implementation files('libs/BLEasyConfig.jar')
    implementation files('libs/easylink2.0.jar')
    implementation files('libs/GizWifiSDK.jar')
    implementation files('libs/jpush-android-2.1.5.jar')
    implementation files('libs/Lark7618SDK_noudp1606031910_0101.jar')
    implementation files('libs/libammsdk.jar')
    implementation files('libs/libForEElink.jar')
    implementation files('libs/LSFSK_1.0.jar')
    implementation files('libs/ltlink2.jar')
    implementation files('libs/mta-sdk-1.6.2.jar')
    implementation files('libs/OneShotConfig.jar')
    implementation files('libs/open_sdk_r5756.jar')
    implementation files('libs/pushservice-5.6.0.30.jar')
    implementation files('libs/simpleconfigwizardlib.jar')
    implementation files('libs/xUtils-2.6.14.jar')
    implementation files('libs/zxing.jar')
    implementation 'com.android.support:design:25.3.1'
    implementation 'com.yanzhenjie:permission:1.0.5'
}

2.4 修改后运行再次报错:
在这里插入图片描述
原因:低版本错误
解决:注释掉AndroidManifest.xml文件中的第6行(移动光标至代码前按Ctrl+/ 即可注释),如下图(已经注释):
在这里插入图片描述

综上,成功。

3、参考与感谢

本文重点参考作者 CS扫地僧的文章: 解决:修改机智云SOC方案的原始android代码,安卓虚拟机运行机智云APP成功.

发布了1 篇原创文章 · 获赞 1 · 访问量 27

猜你喜欢

转载自blog.csdn.net/qq_42457131/article/details/105531865