Dcloud离线打包-android-AndroidStudio

参考:http://ask.dcloud.net.cn/article/38

环境说明:
AndroidStudio2.2.3 win10 JDK8

下载dcloud的离线SDK:http://ask.dcloud.net.cn/article/103

方法1


下面主要是说明AndroidStudio打包。
这里写图片描述
下载dcloud离线包之后,打开HBuilder-Hello文件夹,添加build.gradle文件,使用记事本编辑文件,添加下面的内容。

/*类似工程的buildScript,现在只不过放在一个文件里面,可理解为把module当工程用*/
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.+'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    /*默认配置*/
    defaultConfig {
        applicationId "com.xxxx.xxxx"
        minSdkVersion 11
        targetSdkVersion 20
        versionCode 1
        versionName "1.0.0"

        /*manifestPlaceholders = [
                APPID       : "com.xxx.xxx",//包名
                WX_APPID    : "wxaaaaaaaaaaaaaaaaa",//微信分享-登录  appid
                WX_APPSECRET: "----------------",//微信分享-登录 appsecurity
                WX_APPID_PAY: "-----------------",//微信支付  appid
                app_icon    : "@drawable/icon"
        ]
        */
    }

    lintOptions {
        abortOnError false
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    /*source文件目录设置*/
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }

        instrumentTest.setRoot('tests')
        //debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }

    /*签名配置*/
    signingConfigs {
        myConfig {
            //绝对路径和相对路径都可以
            storeFile file("./keystore/xxxx.keystore")
            storePassword "xxx"
            keyAlias "xxx"
            keyPassword "xxxx"
        }
    }

    buildTypes {
        debug {
        }

        release {
            //1.添加签名
            signingConfig signingConfigs.myConfig
            //2.runProguard 执行混淆代码
            // runProguard false
            //混淆规则文件
            // proguardFile 'proguard.cfg'

            /*编译的文件配置--debug时由于时间函数会导致名称不同,出现安装失败*/
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        //文件名
                        //def fileName = "app_${releaseTime()}_" + variant.productFlavors[0].name + ".apk"
                        def  fileName = "app_" + variant.productFlavors[0].name + ".apk"
                        //output.outputFile = new File(outputFile.parent, fileName)
                        output.outputFile = new File(filePosition(), fileName)//文件输出目录
                    }
                }
            }
        }
    }

    /*多渠道配置*/
    productFlavors {
        xxxx { manifestPlaceholders = [CHANNEL_TOKEN: "B36885933BF342F29A4BE21A1FFCB18B"] }
    }

    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
}

dependencies {/*使用的类库*/
    compile fileTree(dir: 'libs', include: '*.jar')
}

static def releaseTime() {/*函数,用来获取当前时间*/
    return new Date().format("yyyy-MM-dd_HH", TimeZone.getTimeZone("GMT+8"))
}

def filePosition() {/*文件存放路径*/
    return "G:\\outAPK\\xxxx"
}

这里写图片描述

然后直接使用AndroidStudio打开这个工程。即“Open an existing Android Studio project”,然后选中hbuild-hello这个文件夹就OK了。编译过程中可能会提示gradle版本不同的问题,点击fix就好,最后会提示gradle版本过低,点击“don’t mind me …”那个按钮。

方法2

当然你也可以使用AndroidStudio直接打开demo:
选择:G:\A_kaifa\dcloud\lx_01_demo\Android-SDK\HBuilder-Hello(路径自己选择)
这里写图片描述
打开之后会看到一些错误信息,这是因为有些JAR包没有导入进来,看dependencies 这个节点里面。support-v4的jar包会被替换为compile 网络上的v4包,而不是当前的V4 jar包。所以把jar包拷贝到lib里面,再build.gradle删除compile “support-v4” 的字段,添加 compile fileTree(dir: ‘libs’, include: [‘*.jar’]) 这一句,删除compile file(……..jar)这样的内容。

第2种方法更简单。

方法3

先使用eclipse导出gradle项目,然后再用as打开,也就是与第一种做法一样。

总结:
这里只说明如何打开这个项目,至于用哪个工具,自己用着顺手就好,命令行也能编译,不用在意这些细节,哈哈哈。

可能会遇到的问题:
第一种方法可能会提示你gradle版本过低的问题,这个可以忽略掉,不用管。
如果编译提示demo里面的manifest文件有错误,(可能是小米推送配置那里),注释掉再编译,或者随便改为别的文字。

第二种方法splash界面可能会没有,只是转圈,(可能是配置问题,我也不清楚),这个不知道什么原因。
如果第二种不成功就用第一种。
因为gradle下载的原因,可能会导致编译失败,最好搞个VPN。
写的比较简单,仅供参考。

至于自己打包配置,看离线打包教程就可以了,上面讲解了详细要修改的位置。

因为涉及到多渠道打包的方式,如果要改包名,又改配置,又改assets里面的部分文件。
1.可以把dcloud 的离线sdk改成library工程,然后再新建工程打包。
2.新建一个library工程,把需要修改的文件剪切到library工程的相同目录下面。
建议使用1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值