после обновления Android Studio 3.0 произошла ошибка зависимости на externalNativeBuildRelease

на 2.3.3 сборка работает хорошо, однако после обновления на 3.0.0 возникла эта проблема. Есть ли кто-нибудь, кто может мне помочь? Причина в том, что libSDL2.so не создается, однако я не понимаю, почему модуль SDLActivity начинает собираться до завершения сборки SDL2-android-studio.

Я думаю, что модуль SDLActivity начнет собираться после завершения задания сборки для модуля SDL2-android-studio. На самом деле на 2.3.3 заработало. Но на 3.0.0 этого нет. То есть на 2.3.3 задача externaNativeBuildRelease SDLActivity запускается после завершения задачи SDL-android-studio. на 3.0.0 после задачи transformClassesAndResourcesWithPrepareIntermediateJasrForDebug из SDL-android-stduio-studio обрабатываются все SDLActivity. Как контролировать зависимость между задачами?

Заранее спасибо.

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

apply plugin: 'com.android.library' 

android 
{
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"

        ndk {
            abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
        }
        externalNativeBuild {
            cmake {
                arguments '-DANDROID_TOOLCHAIN=clang'
            }

        }
    }

    externalNativeBuild {
        cmake {
            path 'android-cmake/CMakeLists.txt'
        }
    }

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

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

на 3.0.0 сборка не удалась

apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.2'

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"

        ndk {
            abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
        }
        externalNativeBuild {
            cmake {
                arguments '-DANDROID_TOOLCHAIN=clang',
                        '-DANDROID_PLATFORM=android-21'
                cppFlags "-std=c++11"
            }

        }
    }

    externalNativeBuild {
        cmake {
            path 'CMakeLists.txt'
        }
    }

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

}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.+'
    androidTestCompile 'junit:junit:4.12'
    testCompile 'junit:junit:4.12'
    compile project(':SDL2-android-studio')
    compile project(':libtciplayer')
    compile project(':TciSdk')
    compile project(':soundtouch')
}

Но, на 2.3.3 сборка проходит успешно

Выполнение задач: [:SDLActivity:generateReleaseSources, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]

...

: SDLActivity: preReleaseUnitTestBuild UP-TO-DATE: SDLActivity: javaPreCompileReleaseUnitTest: SDLActivity: compileReleaseUnitTestJavaWithJavac: SDLActivity: processReleaseJavaRes NO-ИСТОЧНИК: SDLActivity: processReleaseUnitTestJavaRes NO-ИСТОЧНИК: SDLActivity: compileReleaseUnitTestSources: SDLActivity: generateJsonModelRelease: SDLActivity: externalNativeBuildRelease Построить главный arm64-V8A Ниндзя: ошибка: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so', требуется для 'D:/corelab_proj/GearToTciPlayer2/distribution/main/lib/arm64 -v8a/libmain.so', отсутствует и неизвестное правило, чтобы сделать его :SDLActivity:externalNativeBuildRelease FAILED

ОШИБКА: сборка не удалась с исключением.

  • Я решил эту проблему, ссылаясь на это, https://github.com/googlesamples/android-ndk/issues/450
  • Попробуйте: запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить больше выходных данных журнала.

  • Получите дополнительную помощь на странице https://help.gradle.org.

ПОСТРОЙКА НЕ ПРОШЛА через 13 с.

69 практических задач: 19 выполнены, 50 обновлены

#P7# <блочная цитата> #P8#

Выполнение задач: [:SDLActivity:generateReleaseSources, :SDLActivity:prepareReleaseUnitTestDependencies, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]

: SDLActivity: incrementalReleaseUnitTestJavaCompilationSafeguard NO-ИСТОЧНИК: SDLActivity: javaPreCompileReleaseUnitTest: SDLActivity: compileReleaseUnitTestJavaWithJavac: SDLActivity: processReleaseJavaRes NO-ИСТОЧНИК: SDLActivity: processReleaseUnitTestJavaRes NO-ИСТОЧНИК: SDLActivity: compileReleaseUnitTestSources: SDLActivity: generateJsonModelRelease: SDLActivity: externalNativeBuildRelease [1/10] Строительство CXX объект CMakeFiles /main.dir/src/cpp/SDLAudioImpl.cpp.o ... [10/10] Связывание общей библиотеки CXX D:\corelab_proj\GearToTciPlayer2\dist ribution\main\lib\armeabi-v7a\libmain.so :SDLActivity : compileReleaseSources

ПОСТРОИТЬ УСПЕШНО за 1 мин 38 с 133 практических задачи: 77 выполнены, 56 обновлены

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


person moony    schedule 20.11.2017    source источник
comment
Я добавил файлы gradle.   -  person Alex Cohn    schedule 20.11.2017
comment
Конфигурация по требованию — это инкубирующая функция. Метод setTestClassesDir(File) устарел, и его планируется удалить в Gradle 5.0. Вместо этого используйте метод setTestClassesDirs(FileCollection). Метод getTestClassesDir() устарел, и его планируется удалить в Gradle 5.0. Вместо этого используйте метод getTestClassesDirs(). Метод ConfigurableReport.setDestination(Object) устарел, и его планируется удалить в Gradle 5.0. Вместо этого используйте метод ConfigurableReport.setDestination(File). :SDL2-android-studio:preBuild UP-TO-DATE :SDL2-android-studio:preReleaseBuild UP-TO-DATE :SDL2-android-studio:checkReleaseManifest :SDL2-android-studio:prepareReleaseDependencies :SDL2-android-studio:compileReleaseAidl АКТУАЛЬНАЯ :SDL2-android-studio:compileLint АКТУАЛЬНАЯ :SDL2-android-studio:copyReleaseLint NO-SOURCE :SDL2-android-studio:mergeReleaseShaders АКТУАЛЬНАЯ :SDL2-android-studio:compileReleaseShaders АКТУАЛЬНОСТЬ: SDL2-android-studio: generateReleaseAssets АКТУАЛЬНОСТЬ: SDL2-android-studio:mergeReleaseAssets АКТУАЛЬНОСТЬ: SDL2-android-studio:mergeReleaseProguardFiles АКТУАЛЬНОСТЬ: SDL2-android-studio :packageReleaseRenderscript NO-SOURCE :SDL2-android-studio:compileReleaseRenderscript АКТУАЛЬНО :SDL2-android-studio:generateReleaseResValues ​​АКТУАЛЬНО :SDL2-android-studio:generateReleaseResources АКТУАЛЬНО :SDL2-android-studio :packageReleaseResources АКТУАЛЬНАЯ :SDL2-android-studio:processReleaseManifest АКТУАЛЬНАЯ :SDL2-android-studio:generateReleaseBuildConfig АКТУАЛЬНАЯ :SDL2-и roid-studio:processReleaseResources АКТУАЛЬНО: SDL2-android-studio:generateReleaseSources АКТУАЛЬНО: SDL2-android-studio:incrementalReleaseJavaCompilationSafeguard:SDL2-android-studio:javaPreCompileRelease:SDL2-android-studio:compileReleaseJavaWithJavac:SDL2-android-studio:compileReleaseJavaWithJavac android-studio:processReleaseJavaRes NO-SOURCE: SDL2-android-studio:transformResourcesWithMergeJavaResForRelease: SDL2-android-studio:transformClassesAndResourcesWithSyncLibJarsForRelease: SDL2-android-studio:generateJsonModelRelease:SDL2-android-studio:externalNativeBuildRelease4a/1846 arm4a/1846 Build SDL2-android-studio:externalNativeBuildRelease4 Создание объекта C CMakeFiles/SDL2.dir/D_/corelab_proj/GearToTciPlayer2/SDL2-android-studio/src/SDL_log.co ... [114/114] Связывание общей библиотеки C D:\corelab_proj\GearToTciPlayer2\distribution\SDL2\ lib\arm64-v8a\libSDL2.so Сборка SDL2 x86 [1/114] Создание объекта C ... [114/114] Связывание общей библиотеки C D:\corelab_pr oj\GearToTciPlayer2\distribution\SDL2\lib\x86\libSDL2. поэтому Build SDL2 armeabi-v7a [1/114] Building C object C MakeFiles/SDL2.dir/D_/corelab_proj/GearToTciPlayer2/SDL2-android-studio/src/dynapi/SDL_dynapi.c.o . .. [114/114] Связывание общей библиотеки C D:\corelab_proj\GearToTciPlayer2\distribution\SDL2\lib\armeabi-v7a\libSDL2.so :SDL2-android-studio:mergeReleaseJniLibFolders :SDL2-android-studio:transformNativeLibsWithMergeJniLibsForRelease :SDL2- android-studio:transformNativeLibsWithStripDebugSymbolForRelease:SDL2-android-studio:transformNativeLibsWithSyncJniLibsForRelease:SDL2-android-studio:bundleRelease:SDLActivity:preBuild UP-TO-DATE:SDLActivity:preReleaseBuild UP-TO-DATE:SDLBuildAndroid-TO-DATE:SDLActivity:checkReleaseTDLActivity:SDLActivity:checkReleaseTDLActivity:SDLActivity:preReleaseBuild UP-TO-DATE -DATE: SDLActivity: preDebugBuild UP-TO-DATE: SDLActivity: preDebugUnitTestBuild UP-TO-DATE: SDLActivity: preReleaseUnitTestBuild UP-TO-DATE: SDLActivity: prepareAndroidArchLifecycleRuntime100Library: SDLActivity: prepareComAndroidSupportAnimatedVectorDrawable2610Library: SDLActivity: prepareComAndroidSupportAppcompatV72610Library: SDLActivity: prepareComAndroidSupportSupportCompat2610Library: SDLActivity: prepareComAndroidSupportSupportCoreUi2610Libra чень: SDLActivity: prepareComAndroidSupportSupportCoreUtils2610Library: SDLActivity: prepareComAndroidSupportSupportFragment2610Library: SDLActivity: prepareComAndroidSupportSupportMediaCompat2610Library: SDLActivity: prepareComAndroidSupportSupportV42610Library: SDLActivity: prepareComAndroidSupportSupportVectorDrawable2610Library: SDLActivity: prepareReleaseDependencies: SDLActivity: compileReleaseAidl UP-TO-DATE: SDLActivity: compileReleaseRenderscript UP-TO-DATE: SDLActivity: generateReleaseBuildConfig UP-TO -DATE :SDLActivity:generateReleaseResValues ​​UP-TO-DATE :SDLActivity:generateReleaseResources UP-TO-DATE :SDLActivity:mergeReleaseResources UP-TO-DATE :SDLActivity:processReleaseManifest UP-TO-DATE :SDLActivity:processReleaseResources :SDLActivity:generateReleaseUnistRependaseSources :SDLActivity:generateReleaseRependaseSources :SDLActivity:processReleaseManifest UP-TO-DATE :SDLActivity:mockableAndroidJar АКТУАЛЬНО :SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac N примечание: некоторые входные файлы используют или переопределяют устаревший API. Примечание. Перекомпилируйте с параметром -Xlint:deprecation для получения подробной информации.   -  person moony    schedule 20.11.2017


Ответы (1)


build.gradle для модуля SDL2 может быть полезен

person moony    schedule 23.11.2017