接着上一篇说,如果你想集成到你的app中,两种办法:
直接在示例中改,也就是将你的项目中所有东西,迁移到EasyAr示例中(避免出错)开着音乐播放器,听好运来。然后将EasyAr的文件,迁移到你的项目中去(我用一下午时间,结果还是失败告终),如果你使用这种办法,希望你不要砸电脑。ctrl+c、ctrl+v,全部拷贝即可,需要注意的地方,在下面有说明。
须知 你要把你的项目,放到示例所在的目录,如图:
具体是因为,示例的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 之类的。注意hellor.cc这个文件,里面有一句声明,你需要改掉 我将示例代码中的MainActivity代码,搬到了我自己的Fragment中,所以,我改成我Fragment所在的位置。
如果遇到如法理解的错误,请google,或者留言我。
