从零开始搭建安卓EasyAr环境(二) 集成到app

接着上一篇说,如果你想集成到你的app中,两种办法:

  1. 直接在示例中改,也就是将你的项目中所有东西,迁移到EasyAr示例中(避免出错)
  2. 开着音乐播放器,听好运来。然后将EasyAr的文件,迁移到你的项目中去(我用一下午时间,结果还是失败告终),如果你使用这种办法,希望你不要砸电脑。

方式1

ctrl+c、ctrl+v,全部拷贝即可,需要注意的地方,在下面有说明。

方式2

须知
你要把你的项目,放到示例所在的目录,如图:
这里写图片描述

具体是因为,示例的build.gradle中,明确指明了,它会去
“../../../package/include” 这个目录下找库,当然你也可以改,不过建议等你集成完毕,能运行之后再改。

1.更改根build.gradle文件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        //使用这个Gradle
        classpath 'com.android.tools.build:gradle-experimental:0.4.0'
    }
}

2.更改module的build.gradle文件

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.2"

        defaultConfig.with {
            applicationId = "com.hkyh.hkydpod"
            minSdkVersion.apiLevel = 15
            targetSdkVersion.apiLevel = 23
            versionCode = 1
            versionName = "1.0"
            multiDexEnabled = true

        }

    }



    android.packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }

    android.dexOptions {
        incremental true
        preDexLibraries false
        javaMaxHeapSize "4g"
    }



    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file("proguard-rules.pro"))
        }
    }
    android.ndk {
        moduleName = "HelloARNative"
        cppFlags.add("-I${file("../../../package/include")}".toString())
        cppFlags.add("-DANDROID")
        cppFlags.add("-fexceptions")
        cppFlags.add("-frtti")
        stl = "gnustl_static"
        ldLibs.add("log")
        ldLibs.add("GLESv2")

    }
    android.productFlavors {
        create("arm") {
            ndk.with {
                abiFilters.add("armeabi-v7a")
            }
        }

        create("arm7") {
            ndk.abiFilters.add("armeabi-v7a")
        }
        create("arm8") {
            ndk.abiFilters.add("arm64-v8a")
        }
        create("x86") {
            ndk.abiFilters.add("x86")
        }
        create("x86-64") {
            ndk.abiFilters.add("x86_64")
        }
        create("mips") {
            ndk.abiFilters.add("mips")
        }
        create("mips-64") {
            ndk.abiFilters.add("mips64")
        }
        // To include all cpu architectures, leaves abiFilters empty
        create("all")
    }



    android.sources {
        main {
            jni {
                dependencies {
                    library file("../../../package/Android/libs/armeabi-v7a/libEasyAR.so") abi "armeabi-v7a"
                }
            }
        }
    }
}

repositories {
    jcenter()
    maven { url "https://jitpack.io" }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    .....
}

这里改动的部分有几点:

  • 应用这个插件 apply plugin: ‘com.android.model.application’
  • 外层要用model{ … } 包围起来
  • 在你的jni目录,需要创建不同cpu架构的so文件夹。
    这里写图片描述
  • 其它的你直接复制上面即可,注意改成你的sdkVersion,applicationId 之类的。

注意事项

  1. 注意hellor.cc这个文件,里面有一句声明,你需要改掉
    这里写图片描述
    我将示例代码中的MainActivity代码,搬到了我自己的Fragment中,所以,我改成我Fragment所在的位置。

  2. 如果遇到如法理解的错误,请google,或者留言我。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值