mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
build: copy 'android.jar' from SDK for ':subprojects:framework-stubs'
This commit is contained in:
+2
-1
@@ -28,6 +28,7 @@ import com.itsaky.androidide.plugins.tasks.AddFileToAssetsTask
|
||||
import com.itsaky.androidide.plugins.tasks.DownloadAapt2Task
|
||||
import com.itsaky.androidide.plugins.tasks.GenerateInitScriptTask
|
||||
import com.itsaky.androidide.plugins.tasks.GradleWrapperBuilderTask
|
||||
import com.itsaky.androidide.plugins.util.SdkUtils.getAndroidJar
|
||||
import downloadVersion
|
||||
import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
@@ -64,7 +65,7 @@ class AndroidIDEAssetsPlugin : Plugin<Project> {
|
||||
|
||||
val addAndroidJarTaskProvider = tasks.register("addAndroidJarToAssets",
|
||||
AddAndroidJarToAssetsTask::class.java) {
|
||||
sdkDirectory = androidComponentsExtension.sdkComponents.sdkDirectory.get().asFile
|
||||
androidJar = androidComponentsExtension.getAndroidJar(assertExists = true)
|
||||
}
|
||||
|
||||
androidComponentsExtension.onVariants { variant ->
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
package com.itsaky.androidide.plugins.conf
|
||||
|
||||
import BuildConfig
|
||||
import com.android.build.api.variant.AndroidComponentsExtension
|
||||
import com.android.build.gradle.BaseExtension
|
||||
import com.itsaky.androidide.plugins.util.SdkUtils.getAndroidJar
|
||||
import isFDroidBuild
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.Dependency
|
||||
@@ -44,6 +46,15 @@ fun Project.configureAndroidModule(
|
||||
"${javaClass.simpleName} can only be applied to Android projects"
|
||||
}
|
||||
|
||||
val androidJar = extensions.getByType(AndroidComponentsExtension::class.java)
|
||||
.getAndroidJar(assertExists = true)
|
||||
val frameworkStubsJar = findProject(":subprojects:framework-stubs")!!.file("libs/android.jar")
|
||||
.also { it.parentFile.mkdirs() }
|
||||
|
||||
if (!(frameworkStubsJar.exists() && frameworkStubsJar.isFile)) {
|
||||
androidJar.copyTo(frameworkStubsJar)
|
||||
}
|
||||
|
||||
extensions.getByType(BaseExtension::class.java).run {
|
||||
compileSdkVersion(BuildConfig.compileSdk)
|
||||
|
||||
|
||||
+5
-4
@@ -21,6 +21,7 @@ import BuildConfig
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.GradleException
|
||||
import org.gradle.api.file.DirectoryProperty
|
||||
import org.gradle.api.tasks.Internal
|
||||
import org.gradle.api.tasks.OutputDirectory
|
||||
import org.gradle.api.tasks.TaskAction
|
||||
import java.io.File
|
||||
@@ -33,10 +34,10 @@ import java.io.File
|
||||
abstract class AddAndroidJarToAssetsTask : DefaultTask() {
|
||||
|
||||
/**
|
||||
* Path to the Android SDK directory.
|
||||
* Path to the `android.jar` file.
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Internal
|
||||
internal var sdkDirectory: File? = null
|
||||
@get:Internal
|
||||
internal var androidJar: File? = null
|
||||
|
||||
/**
|
||||
* The output directory to copy the `android.jar` file to.
|
||||
@@ -49,7 +50,7 @@ abstract class AddAndroidJarToAssetsTask : DefaultTask() {
|
||||
val outFile = outputDirectory.dir("data/common").get().asFile.also { dir -> dir.mkdirs() }
|
||||
.let { dir -> File(dir, "android.jar") }
|
||||
|
||||
val androidJar = sdkDirectory!!.resolve("platforms/android-${BuildConfig.compileSdk}/android.jar")
|
||||
val androidJar = this.androidJar!!
|
||||
if (!androidJar.exists() || !androidJar.isFile) {
|
||||
throw GradleException("File $androidJar does not exist or is not a file.")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of AndroidIDE.
|
||||
*
|
||||
* AndroidIDE is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* AndroidIDE is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.itsaky.androidide.plugins.util
|
||||
|
||||
import BuildConfig
|
||||
import com.android.build.api.variant.AndroidComponentsExtension
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
object SdkUtils {
|
||||
|
||||
fun AndroidComponentsExtension<*, *, *>.getAndroidJar(assertExists: Boolean = true): File {
|
||||
val sdkDirectory = sdkComponents.sdkDirectory
|
||||
val androidJar = File(sdkDirectory.get().asFile,
|
||||
"platforms/android-${BuildConfig.compileSdk}/android.jar")
|
||||
|
||||
if (assertExists) {
|
||||
check(androidJar.exists() && androidJar.isFile) {
|
||||
"$androidJar does not exist or is not a file."
|
||||
}
|
||||
}
|
||||
|
||||
return androidJar
|
||||
}
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
/build
|
||||
/libs/android.jar
|
||||
/build
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user