问题描述
目标
能够在任何兼容的 Windows 计算机上通过 USB 驱动器安装和运行 Android Studio。理想情况下,还能够将所有随附文件存储在同一个 USB 驱动器上(即 android SDK、gradle、项目等)
软件信息
PC 操作系统:Windows 10
Android Studio 版本 4.2.2
Gradle 版本 6.7.1(也尝试过 7.1.1 版)
注意:不会总是打开管理权限不同的电脑;因此我使用的是 ZIP 版本的 Android Studio。
采取的步骤
我已经按照这个非常好的线程的全部说明进行操作:
Making Android Studio Portable (2017+ versions)
该线程谈到了虚拟驱动器,但我使用了 USB 拇指驱动器。
我对说明进行的一个小修改是将硬编码的驱动器号 t:
替换为代码%CD:~0,2%
例如:代替t:\Android\.gradle
,我会使用%CD:~0,2%\Android\.gradle
这是为了在插入USB驱动器时考虑不断变化的USB驱动器盘符
现在,我可以将U盘插入电脑,双击start-studio.bat文件,启动Android Studio(AS)。我在 U 盘中创建了一个名为 AndroidStudioProjects 的文件夹,以及一个名为 SDK 的文件夹,我在其中指示 AS 下载 SDK 包。
问题
我选择“创建新项目”--> 空活动。我将项目命名为“Hello World”,在位于同一 U 盘的 AndroidStudioProjects 文件夹中设置文件目录,选择 Kotlin 作为语言,恰好选择 API 28 作为最低 SDK 版本。单击完成按钮后,项目开始初始化,Gradle 尝试同步,但同步失败。因此,我无法编译我的项目,导致 AS 无法使用。
Screenshot 1
我也在同一屏幕(不同标签)的构建日志中看到了这个:
Starting Gradle Daemon... Gradle Daemon started in 2 s 474 ms
FAILURE: Build Failed with an exception.
* What went wrong: The cache entry for initialization script 'C:\Users\lmch3573\AppData\Local\Temp\sync.studio.tooling2.gradle' appears to be corrupted.
* Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is: java.lang.IllegalStateException: The cache entry for initialization script 'C:\Users\lmch3573\AppData\Local\Temp\sync.studio.tooling2.gradle' appears to be corrupted. at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler$ClassesDirCompiledScript.loadClass(DefaultScriptCompilationHandler.java:343) at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.getScript(DefaultScriptRunnerFactory.java:55) at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:86) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:111) at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71) at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:43) at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62) at org.gradle.configuration.Defaultinitscriptprocessor.process(Defaultinitscriptprocessor.java:50) at org.gradle.initialization.InitScriptHandler$1.run(InitScriptHandler.java:56) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71) at org.gradle.initialization.InitScriptHandler.executeScripts(InitScriptHandler.java:51) at org.gradle.initialization.DefaultSettingsPreparer.prepareSettings(DefaultSettingsPreparer.java:33) at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.doLoadBuild(BuildOperationFiringSettingsPreparer.java:59) at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.run(BuildOperationFiringSettingsPreparer.java:54) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71) at org.gradle.initialization.BuildOperationFiringSettingsPreparer.prepareSettings(BuildOperationFiringSettingsPreparer.java:42) at org.gradle.initialization.DefaultGradleLauncher.prepareSettings(DefaultGradleLauncher.java:220) at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:161) at org.gradle.initialization.DefaultGradleLauncher.dobuildStages(DefaultGradleLauncher.java:150) at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:126) at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:72) at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:178) at org.gradle.internal.invocation.GradleBuildController.dobuild(GradleBuildController.java:67) at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:60) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63) at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32) at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:67) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44) at org.gradle.launcher.exec.InProcessBuildActionExecuter.lambda$execute$0(InProcessBuildActionExecuter.java:54) at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:87) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:53) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.lambda$execute$0(BuildTreeScopeLifecycleBuildActionExecuter.java:33) at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:49) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:32) at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:27) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:104) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:55) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:64) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:37) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.lambda$execute$0(SessionScopeLifecycleBuildActionExecuter.java:54) at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:67) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:50) at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36) at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.dobuild(ExecuteBuild.java:65) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.WatchFordisconnection.execute(WatchFordisconnection.java:39) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.LogToClient.dobuild(LogToClient.java:63) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.dobuild(EstablishBuildEnvironment.java:84) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
* Get more help at https://help.gradle.org
BUILD Failed in 4s
在该目录“C:\Users\lmch3573\AppData\Local\Temp\”之后,我看到创建了两个文件:“ijinit.gradle”和“sync.studio.tooling.gradle”。各自的内容粘贴如下:
ijinit.gradle
import org.gradle.api.internal.project.ProjectInternal import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry import org.gradle.util.GradLeversion import org.jetbrains.plugins.gradle.tooling.internal.ExtraModelBuilder
import java.util.concurrent.copyOnWriteArrayList
initscript { dependencies {
classpath files(["D:/Android/android-studio/.AndroidStudio/config/plugins/Kotlin/lib/kotlin-compiler-plugins-lombok.jar","D:/Android/android-studio/lib/external-system-rt.jar","D:/Android/android-studio/lib/kotlin-stdlib-1.4.31.jar","D:/Android/android-studio/plugins/gradle/lib/gradle-tooling-extension-impl.jar","D:/Android/android-studio/plugins/gradle/lib/gradle-api-impldep-6.5.jar","D:/Android/android-studio/plugins/gradle/lib/gradle-tooling-extension-api.jar","D:/Android/android-studio/plugins/android/lib/android-extensions-ide.jar","D:/Android/android-studio/lib/util.jar","D:/Android/android-studio/lib/trove4j.jar","D:/Android/android-studio/.AndroidStudio/config/plugins/Kotlin/lib/kotlin-compiler-plugins-annotation-based-compiler-support.jar","D:/Android/android-studio/lib/gson-2.8.6.jar","D:/Android/android-studio/.AndroidStudio/config/plugins/Kotlin/lib/kotlin-gradle-gradle-tooling.jar","D:/Android/android-studio/lib/ion-java-1.5.2-2.jar"]) } }
apply plugin: JetGradlePlugin
class JetGradlePlugin implements Plugin<Gradle> { void apply(Gradle gradle) {
def processor = new RegistryProcessor()
gradle.addProjectEvaluationListener(processor)
def projectEvaluationIsNotCalledForIncludedBuilds = GradLeversion.current() >= GradLeversion.version("3.1") &&
GradLeversion.current() < GradLeversion.version("4.0")
if (projectEvaluationIsNotCalledForIncludedBuilds) {
gradle.rootProject {
it.afterEvaluate {
gradle.includedBuilds.each { included ->
// included builds should be configured by Now,so calling `configuredBuild` should be safe
def toolingRegistry = (ToolingModelBuilderRegistry)included.configuredBuild.services.get(ToolingModelBuilderRegistry.class)
processor.process(toolingRegistry)
}
}
}
} } }
/** * Adds a single extra model builder instance for each root of ToolingModelBuilderRegistry hierarchy<br> * Thread safe. */ class RegistryProcessor implements ProjectEvaluationListener { def extraModelBuilderInstance = new ExtraModelBuilder() copyOnWriteArrayList<ToolingModelBuilderRegistry> processedRegistries
= new copyOnWriteArrayList<ToolingModelBuilderRegistry>()
@Override void beforeEvaluate(Project project) {
def registry = (ToolingModelBuilderRegistry)((ProjectInternal)project).services.get(ToolingModelBuilderRegistry.class)
process(registry) }
void process(ToolingModelBuilderRegistry registry) {
ToolingModelBuilderRegistry rootRegistry = registry
while (rootRegistry.hasProperty('parent') && rootRegistry.parent != null) {
rootRegistry = rootRegistry.parent
}
boolean alreadySeen = !processedRegistries.addIfAbsent(rootRegistry) if (alreadySeen || extraModelBuilderIsRegistered(rootRegistry)) {
return } rootRegistry.register(extraModelBuilderInstance) }
private static boolean extraModelBuilderIsRegistered(registry) {
registry.hasProperty('builders') && registry.builders instanceof Collection &&
(registry.builders as Collection).find { it instanceof ExtraModelBuilder } != null }
@Override void afterEvaluate(Project project,ProjectState state) { } }
sync.studio.tooling2.gradle
initscript {
dependencies {
classpath files(['D:\\Android\\android-studio\\plugins\\android\\lib\\android.jar','D:\\Android\\android-studio\\plugins\\android\\lib\\android.jar','D:\\Android\\android-studio\\lib\\kotlin-stdlib-1.4.31.jar'])
} } allprojects {
apply plugin: com.android.ide.gradle.model.builder.AndroidStudioToolingPlugin }
尝试后
阅读 stackoverflow (SO) 上的其他类似线程,我尝试删除 gradle 文件夹并更改 AS 设置中的 gradle 版本。这些似乎都无助于解决问题。
我不知道为什么 AS 仍在将(临时)文件写入主计算机,而不是 USB 驱动器。我是否缺少任何需要更改的目录?不一致的目录可能是错误的原因吗?需要帮助,请。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)