MapBox android源码编译

MapBox : https://github.com/mapbox/mapbox-gl-native

MapBox android : https://github.com/mapbox/mapbox-gl-native/tree/master/platform/android

编译参考blog : https://www.jianshu.com/p/ec4c7602b934

进入正题:

  1. 下载源码git clone,download(无论是那种姿势,下载下来就行)

  2. 通过Android studio打开(我的as版本是3.0.1)

  3. 打开后会报错

  4. 很明显缺少配置文件,暂且先不管,先注释掉项目根目录下的gradle中缺失的文件,然后点下标题栏的锥子!

  5. 嗯,还是没有编译完成,咱不急,接着看报错,Message中的提示不明显,看Gradle Console

  6. PluginCrashReporter这个说明我么少插件,Settings->Appearance&Behavior->System Settings->Android SDk点击SDK Tools下载CMake,LLDB,NDk,再次点击小锤子
    4.编译后没成功,嗯,这是正常现象,哈哈

  7. 这样吧,直接来大招,我们直接看项目MapboxGLAndroidSDKTestApp的gradle

  8. 好多东西啊,abi,node,npm,貌似跟项目没啥关系,直接删吧(不敢删的先注释掉),最后成这样,看着简洁多了,有木有
    `apply plugin: ‘com.android.application’

android {
compileSdkVersion androidVersions.compileSdkVersion

defaultConfig {
    applicationId "com.mapbox.mapboxsdk.testapp"
    minSdkVersion androidVersions.minSdkVersion
    targetSdkVersion androidVersions.targetSdkVersion
    versionCode 13
    versionName "6.0.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'LICENSE.txt'
}

lintOptions {
    baseline file("lint-baseline-local.xml")
    checkAllWarnings true
    warningsAsErrors true
    disable 'MissingTranslation', 'GoogleAppIndexingWarning', 'UnpackedNativeCode', 'IconDipSize', 'TypographyQuotes'
    abortOnError false
}

buildTypes {
    debug {
        testCoverageEnabled true
        minifyEnabled false
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.debug
    }
}

dexOptions {
    maxProcessCount 8
    javaMaxHeapSize "2g"
    preDexLibraries true
}

}

dependencies {
implementation dependenciesList.kotlinLib

implementation project(':MapboxGLAndroidSDK')
implementation dependenciesList.mapboxJavaTurf

implementation dependenciesList.supportAppcompatV7
implementation dependenciesList.supportRecyclerView
implementation dependenciesList.supportDesign
implementation dependenciesList.supportConstraintLayout

implementation dependenciesList.gmsLocation
implementation dependenciesList.reLinker
implementation dependenciesList.timber
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
debugImplementation dependenciesList.leakCanaryDebug
releaseImplementation dependenciesList.leakCanaryRelease

androidTestImplementation dependenciesList.supportAnnotations
androidTestImplementation dependenciesList.testRunner
androidTestImplementation dependenciesList.testRules
androidTestImplementation dependenciesList.testEspressoCore
androidTestImplementation dependenciesList.testEspressoIntents
androidTestImplementation dependenciesList.testEspressoContrib
androidTestImplementation dependenciesList.testUiAutomator

}

apply from: “ r o o t D i r / g r a d l e / g r a d l e − m a k e . g r a d l e " a p p l y f r o m : " {rootDir}/gradle/gradle-make.gradle" apply from: " rootDir/gradle/gradlemake.gradle"applyfrom:"{rootDir}/gradle/gradle-config.gradle”
apply from: “ r o o t D i r / g r a d l e / g r a d l e − c h e c k s t y l e . g r a d l e " a p p l y f r o m : " {rootDir}/gradle/gradle-checkstyle.gradle" apply from: " rootDir/gradle/gradlecheckstyle.gradle"applyfrom:"{rootDir}/gradle/gradle-lint.gradle”

apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-android-extensions’
`

  1. 还是有问题呀,开始着急了,静下心看看这个报错

  2. 什么情况居然回到原点了,在看看报错

  3. 这个问题啊,跟as配置一样就行,我本地的是4.6,把下面这句话替换了就行
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
    还有项目根目录的gradle替换成

     classpath 'com.android.tools.build:gradle:3.2.0'
    
  4. 点完小锤子还有错Message

  5. 跟着错误去错误的地方就好报的42行,其实不是这个问题,主要问题是MapboxGLAndroidSDK应该是一个lib,修改gradle中的第一行
    apply plugin: 'com.android.library'

  6. 修改后点下小锤子看是否编译通过,不行,在关闭项目,再开,基本就好了最好看到项目的lib,java,app的图标变成这样

  7. 恭喜项目编译通过,最后看运行到手机上的效果,居然还有点问题

  8. 缺少so文件,嗯,这个嘛,不难,我们可以依赖一个远程的MapBoxSDK然后下载完后,在project最下面的External Libraries下面找到MapBoxSDk

  9. 鼠标箭头放classes上,右键点Show in Explorer进到了jars文件夹,然后点到上一级文件夹可以看到jni,jni里面就是我们需要的so文件,全部复制到MapboxGLAndroidSDK

  10. build下项目,对了记得去Mapbox申请token,运行后的效果是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值