Android ndkBuild android_gradle_build отсутствует для ABI

У меня есть проект Android Ionic, и я получаю

platform/android/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build.json (Нет такого файла или каталога)

Когда я бегу:

ionic cordova run android --device 

Эта папка 'platforms/android/.externalNativeBuild/ndkBuild/debug/' сгенерировала файлы для mips, mips64, x86 и x86_64.

Мой build.gradle выглядит следующим образом:

apply plugin: 'com.android.application'

repositories {
  mavenCentral()
}
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "my.app.id"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        ndk{
          abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
        }
    }
    externalNativeBuild {
        ndkBuild {
            path '../../plugins/my-plugin/src/android/Android.mk'
        }
    }
    buildTypes {
        release {
            ndk {
              abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
            }
        }
        debug {
            ndk {
              abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
            }
        }
    }
}
dependencies {
  compile ('org.nanohttpd:nanohttpd:2.3.1')
}

Если я не ставлю ABiFilters, он просто строит для x86 и mips. Если я поставлю жалобы на то, что этот файл не найден


person FabioCosta    schedule 03.12.2017    source источник


Ответы (1)


Оказывается, мне нужно было добавить некоторые флаги отладки.

debuggable true
initWith debug
jniDebuggable true
externalNativeBuild {
  ndkBuild {
      cFlags "-DDEBUG=1"
    }
}

Мой build.gradle теперь выглядит как плагин для применения: 'com.android.application'

repositories {
  mavenCentral()
}
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "my.app.id"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        ndk{
          abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
        }
    }
    externalNativeBuild {
        ndkBuild {
            path '../../plugins/my-plugin/src/android/Android.mk'
        }
    }
    buildTypes {
        release {
            ndk {
              abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
            }
        }
        debug {
            debuggable true
            initWith debug
            jniDebuggable true
            externalNativeBuild {
              ndkBuild {
                  cFlags "-DDEBUG=1"
                }
            }
            ndk {
              abiFilters 'x86', 'x86_64', 'mips', 'mips64', 'armeabi-v7a', 'armeabi', 'arm64-v8a'
            }
        }
    }
}
dependencies {
  compile ('org.nanohttpd:nanohttpd:2.3.1')
}
person FabioCosta    schedule 03.12.2017
comment
Для меня это непростая проблема, и изменение build.gradle не помогает. Вы также не объяснили, что отвечает за его исправление. Выполнение Build->Refresh linked C++ projects, кажется, исправляет это, но мне придется докопаться до основной причины, так как мне нужна сборка из командной строки, и у нее та же проблема. - person Pawel Veselov; 16.07.2019
comment
Итак, это старая ошибка, и у меня нет точной среды, но для меня добавление отладки в buildTypes решено. Я бы предположил, что нужен какой-то файл на отладочной части. В то время я помню, что он не строил ABI без флага и начал строить с ним. - person FabioCosta; 16.07.2019