在 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 上,SDLActivity 的任务 externaNativeBuildRelease 在 SDL-android-studio 的任务完成后开始。在 3.0.0 上,在 SDL-android-stduio-studio 的任务转换 ClassesAndResourcesWithPrepareIntermediateJasrForDebug 之后,所有 SDLActivity 都会被处理。 如何控制任务之间的依赖关系?
提前谢谢。
build.gradle for SDL2 模块如下所示。
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')
}
而且,SDLActivity 的 build.gradle 如下所示。
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')
}
在 3.0.0 上,构建失败
正在执行任务: [:SDLActivity:generateReleaseSources, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]
。
:SDLA活动性:preReleaseUnitTestBuild UP-TO-DATE- :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes no-SOURCE :SDLActivity:processReleaseUnitTestJavaRes no-SOURCE :SDLA活动性:编译发布单元测试源 :SDLA活动性:生成Json模型发布 :SDLA活动性:外部原生构建发布 构建主臂64-v8a 忍者: 错误: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so',由"D:/corelab_proj/GearToTciPlayer2/distribution/main/lib/arm64-v8a/libmain.so"需要,缺少并且没有已知的规则来制作它 :SDLA活动性:外部本机构建发布失败
失败:生成失败,出现异常。
出了什么问题: 任务":SDLActivity:externalNativeBuildRelease"的执行失败。
生成命令失败。 执行进程 D 时出错:\User-expand\Android\sdk\cmake\3.6.4111459\bin\cmake.exe 带有参数 {--build D:\corelab_proj\GearToTciPlayer2\SDLActivity.externalNativeBuild\cmake\release\arm64-v8a --target main} 忍者: 错误: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so',由"D:/corelab_proj/GearToTciPlayer2/distribution/main/lib/arm64-v8a/libmain.so"需要,缺少并且没有已知的规则来制作它
尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。
在 https://help.gradle.org 获取更多帮助
构建在 13 秒内失败
69 项可操作任务:19 项已执行,50 项最新
但是,在 2.3.3 上,构建成功
正在执行任务: [:SDLActivity:generateReleaseSources, :SDLActivity:prepareReleaseUnitTestDependencies, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]
按需配置是一项孵化功能。 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-DATE-LATE :SDL2-android-studio:checkReleaseManifest :SDL2-android-studio:prepareReleaseDependencies :SDL2-android-studio:compileReleaseAidl LATE-TO-DATE- :SDL2-android-studio:compileLint LATE-TO-DATE- :SDL2-android-studio:copyReleaseLint no-SOURCE :SDL2-android-studio:mergeReleaseShaders LATE-TO-TO-UPDATED- :SDL2-android-studio:compileReleaseShaders UP-TO-TO-LATE :SDL2-android-studio:generateReleaseAssets LATE-TO-UPDATED- :SDL2-android-studio:mergeReleaseAssets LATE-TO-DATE- :SDL2-android-studio:mergeReleaseProguardFiles LATE-TO-TO-LATE :SDL2-android-studio:packageReleaseRenderscript no-SOURCE :SDL2-android-studio:compileReleaseRenderscript LATE-TO-UPDATED- :SDL2-android-studio:generateReleaseResValues LATE-TO-UPDATED- :SDL2-android-studio:generateReleaseResources LATE-TO-UPDATED- :SDL2-android-studio:packageReleaseResources LATE-TO-TO-FAST :SDL2-android-studio:processReleaseManifest LATE-TO-DATE- :SDL2-android-studio:generateReleaseBuildConfig LATE-TO-LATE :SDL2-android-studio:processReleaseResources LATE-TO-UPDATED- :SDL2-android-studio:generateReleaseSources LATE-TO-UPDATED- :SDL2-android-studio:incrementalReleaseJavaCompilationSafeguard :SDL2-android-studio:javaPreCompileRelease :SDL2-android-studio:compileReleaseJavaWithJavac:SDL2-android-studio:processReleaseJavaRes no-SOURCE :SDL2-android-studio:transformResourcesWithMergeJavaResForRelease :SDL2-android-studio:transformClassesAndResourcesWithSyncLibJarsForRelease :SDL2-android-studio:generateJsonModelRelease :SDL2-android-studio:externalNativeBuildRelease 构建 SDL2 臂64-v8a [1/114] Building C 对象 CMakeFiles/SDL2.dir/D_/corelab_proj/GearToTciPlayer2/SDL2-android-studio/src/SDL_log.c.o ... [114/114] 链接 C 共享库 D:\corelab_proj\GearToTciPlayer2\dis tribution\SDL2\lib\arm64-v8a\libSDL2.so 构建 SDL2 x86 [1/114] 建筑物 C 对象 ... [114/114] 链接 C 共享库 D:\corelab_pr oj\GearToTciPlayer2\distribution\SDL2\lib\x86\libSDL2.so 构建 SDL2 armeabi-v7a [1/114] Building C 对象 CMakeFiles/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:mergeReleaseJniLibFolder :SDL2-android-studio:transformNativeLibsWithMergeJniLibsForRelease :SDL2-android-studio:transformNativeLibsWithStripDebugSymbolForRelease :SDL2-android-studio:transformNativeLibsWithSyncJniLibsForRelease :SDL2-android-studio:bundleRelease :SDLA活动性:预构建 最新 :SDLA活动性:预发布构建最新 :SDLA活动性:检查发布清单 :SDLActivity:preDebugAndroidTestBuild UP-TO-DATE-OF :SDLA活动性:preDebugBuild UP-TO-DATE-GENERATION :SDLA活动性:preDebugUnitTestBuild UP-TO-DATE-MAY :SDLA活动性:preReleaseUnitTestBuild UP-TO-DATE- :SDLA活动性:准备AndroidArchLifecycle Runtime100Library :SDLA活动性:准备ComAndroid支持动画矢量可绘制2610库 :SDLA活动性:准备ComAndroid支持AppcompatV72610Library :SDLA活动性:准备ComAndroid支持支持Compat2610Library :SDLA活动性:准备ComAndroid支持支持CoreUi2610Library :SDLActivity:prepareComAndroidSupportSupportCoreUtils2610Library :SDLA活动性:准备ComAndroid支持支持片段2610库 :SDLA活动性:准备ComAndroid支持支持MediaCompat2610Library :SDLA活动性:准备通信Android支持支持V42610库 :SDLA活动性:准备ComAndroid支持支持VectorDrawable2610Library :SDLA活动性:准备发布依赖 :SDLActivity:compileReleaseAidl UP-TO-DATE-OF :SDLActivity:compileReleaseRenderscript LATE-TO-DATE- :SDLActivity:generateReleaseBuildConfig LATE-TO-DATE-OF :SDLA活动性:生成发布重新值 最新 :SDLA活动性:生成发布资源 最新 :SDLA活动性:合并发布资源 最新 :SDLA活动性:进程发布清单 最新 :SDLA活动性:过程发布资源 :SDLA活动性:生成发布来源 :SDLActivity:prepareReleaseUnitTestDependencies :SDLA活动性:可模拟安卓罐子 最新 :SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLA活动性:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注意:某些输入文件使用或覆盖已弃用的 API。 注意:使用 -Xlint:deprecation 重新编译以了解详细信息。
:SDLA活动性:增量发布单元测试Java编译保护无源 :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes no-SOURCE :SDLActivity:processReleaseUnitTestJavaRes no-SOURCE :SDLA活动性:编译发布单元测试源 :SDLA活动性:生成Json模型发布 :SDLA活动性:外部原生构建发布 [1/10] 构建 CXX 对象 CMakeFiles/main.dir/src/cpp/SDLAudioImpl.cpp.o ... [10/10] 链接 CXX 沙尔 ed library D:\corelab_proj\GearToTciPlayer2\dist Ribution\main\lib\armeabi-v7a\libmain.so :SDLA活动性:编译发布源
在 1 分 38 秒内成功构建 133 个可操作任务:77 个已执行,56 个最新
我参考这个解决了这个问题,https://github.com/googlesamples/android-ndk/issues/450