在Android Studio上运行EasyAR

最近项目中有需要用到AR功能,于是找到了EasyAR。在Android Studio上跑EasyAR样例的时候踩了不少坑。

EasyAR官方推荐安装需求:
JDK 1.7 或更新版本
Android Studio 1.5 或更新版本
Android NDK r10e
Android SDK with Build Tools 至少需要版本20.0.0
Android API 23 (可从Android SDK Manager中下载)

如果您的是Android Studio也是 1.5版本的,就可以直接看官方的文档了

1.当然是先注册帐号什么的了

在EasyAR官方网站上注册帐号,并且创建一个应用,因为要运行官方的样例所以在Package Name框中直接输入cn.easyar.samples.helloar,名称随意。

在Android Studio上运行EasyAR_第1张图片
创建应用

2.下载Samples

下载EasyAR SDK v1.3.1 Native Samples ,然后直接解压。

在Android Studio上运行EasyAR_第2张图片
Samples

打开MainActivity设置key。
在Android Studio上运行EasyAR_第3张图片
这里写图片描述

注意:“Android” 文件夹和“package”要在一个文件夹中

3.将样例导入Android Studio里面

选择HelloARNative项目导入项目。


在Android Studio上运行EasyAR_第4张图片
HelloARNative

4.配置NDK

如果没有NDK则会出现下面的提示,如果没有请跳过该步骤。


NDK提示

点击错误提示会出现以下窗口。你可以选择第一选项直接下载,不过可能会比较慢,而且NDK包大概有2G。选择第二个选项,点击“...”按钮选择你的NDK包。


在Android Studio上运行EasyAR_第5张图片
这里写图片描述

在Android Studio上运行EasyAR_第6张图片
这里写图片描述

5.解决Error:Gradle DSL method not found: 'library()'

打开app下的build.gradle文件修改如下:


在Android Studio上运行EasyAR_第7张图片
这里写图片描述
apply plugin: 'com.android.model.application'

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

        defaultConfig.with {
            applicationId = "cn.easyar.samples.helloar"
            minSdkVersion.apiLevel  =15
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            versionName = "1.0"
        }
    }
    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")
            }
        }
    }

    repositories {
        libs(PrebuiltLibraries) {
            prebuilt {
                headers.srcDir "../../../package/include"
                binaries.withType(SharedLibraryBinary) {
                    sharedLibraryFile = file("../../../package/Android/libs/armeabi-v7a/libEasyAR.so")
                }
            }
        }
    }
    android.sources {
        main {
            jni {
                dependencies {
                    library "prebuilt"
//                    library file("../../../package/Android/libs/armeabi-v7a/libEasyAR.so") abi "armeabi-v7a"
                }
            }
        }
    }
}

dependencies {
//    compile fileTree(include: ['*.jar'], dir: '../../../package/Android/libs')
//    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile files('libs/EasyAR.jar')
}

注意:创建libs文件,将EasyAR.jar复制到文件夹中

6.重新Build --> clean project

你可能感兴趣的:(在Android Studio上运行EasyAR)