接着上一篇说,如果你想集成到你的app中,两种办法:
- 直接在示例中改,也就是将你的项目中所有东西,迁移到EasyAr示例中(避免出错)
- 开着音乐播放器,听好运来。然后将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 之类的。
注意事项
注意hellor.cc这个文件,里面有一句声明,你需要改掉
我将示例代码中的MainActivity代码,搬到了我自己的Fragment中,所以,我改成我Fragment所在的位置。如果遇到如法理解的错误,请google,或者留言我。