标签: Android Studio

Android Studio错误提示

错误异常 (1)Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly

【已解决】

 

【问题】

Android Studio中出现提示:

Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly

 

【解决过程】

1.点击了:

Show Log in Explorer

打开找到了log文件:

C:\Users\Administrator\.AndroidStudio\system\log\idea.log

C Users Administrator AndroidStudio system log idea.log file

Log文件内容很长,*后一部分是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
Consult IDE log for more details (Help | Show Log)
2015-04-01 10:37:20,131 [1257636]   INFO - indexing.UnindexedFilesUpdater - Indexable files iterated in 2694 ms
2015-04-01 10:37:20,131 [1257636]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 2500 files to update
2015-04-01 10:37:22,330 [1259835]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/codeStyleSettings.xml file is null
2015-04-01 10:37:22,333 [1259838]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/projectCodeStyle.xml file is null
2015-04-01 10:37:22,600 [1260105]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/fileColors.xml file is null
2015-04-01 10:37:25,627 [1263132]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/web-browsers.xml file is null
2015-04-01 10:37:36,269 [1273774]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update done in 16138 ms
2015-04-01 10:37:36,941 [1274446]   INFO - nject.config.XPathSupportProxy - XPath Support is not available
2015-04-01 10:37:37,119 [1274624]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/IntelliLang.xml file is null
2015-04-01 10:37:37,122 [1274627]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/IntelliLang.xml file is null
2015-04-01 10:37:37,947 [1275452]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/feature.usage.statistics.xml file is null
2015-04-01 10:37:39,177 [1276682]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $PROJECT_CONFIG_DIR$/gant_config.xml file is null
2015-04-01 10:37:40,335 [1277840]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/remote-servers.xml file is null
2015-04-01 10:37:40,518 [1278023]   INFO - tor.impl.FileEditorManagerImpl - Project opening took 58569 ms
2015-04-01 10:37:46,714 [1284219]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/file.template.settings.xml file is null
2015-04-01 10:37:51,540 [1289045]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/cachedDictionary.xml file is null
2015-04-01 10:39:35,962 [1393467]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/intentionSettings.xml file is null
2015-04-01 10:43:56,598 [1654103]   INFO - indexing.UnindexedFilesUpdater - Indexable files iterated in 3182 ms
2015-04-01 10:43:56,598 [1654103]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update started: 22098 files to update
2015-04-01 10:44:23,144 [1680649]   INFO - util.EmbeddedDistributionPaths - Looking for embedded Gradle distribution at 'C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1'
2015-04-01 10:44:23,252 [1680757]   INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk1.7.0_76
2015-04-01 10:44:23,253 [1680758]   INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from C:\Program Files\Java\jdk1.7.0_76
2015-04-01 10:44:23,254 [1680759]   INFO - util.EmbeddedDistributionPaths - Looking for embedded Maven repo at 'C:\Program Files\Android\Android Studio\gradle\m2repository'
2015-04-01 10:44:23,256 [1680761]   INFO - .project.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: [-Pandroid.injected.build.model.only=true, -Pandroid.injected.build.model.only.advanced=true, -Pandroid.injected.invoked.from.ide=true, --init-script, C:\Users\Administrator\AppData\Local\Temp\asLocalRepo3577806095284007233.gradle, --init-script, C:\Users\Administrator\AppData\Local\Temp\ijinit6508239471401468090.gradle]
2015-04-01 10:44:40,498 [1698003]   INFO - .project.GradleProjectResolver - Gradle project resolve error
org.gradle.tooling.BuildException: Could not run build action using Gradle installation 'C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1'.
 at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:57)
 at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
 at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
 at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
 at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter.run(DefaultBuildActionExecuter.java:46)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.doResolveProjectInfo(GradleProjectResolver.java:186)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.access$300(GradleProjectResolver.java:64)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:361)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:333)
 at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:203)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:41)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:37)
 at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)
 at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49)
 at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48)
 at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137)
 at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123)
 at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$2.execute(ExternalSystemUtil.java:406)
 at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3$2.run(ExternalSystemUtil.java:483)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:471)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
 at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:380)
 at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
 at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149)
Caused by: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':cSipSimplemaster'.
 at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:77)
 at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47)
 at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
 at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:108)
 at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:97)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:84)
 at org.gradle.tooling.internal.provider.ClientProvidedBuildAction.run(ClientProvidedBuildAction.java:43)
 at org.gradle.tooling.internal.provider.ClientProvidedBuildAction.run(ClientProvidedBuildAction.java:31)
 at org.gradle.tooling.internal.provider.ConfiguringBuildAction.run(ConfiguringBuildAction.java:119)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
 at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
 at org.gradle.util.Swapper.swap(Swapper.java:38)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
 at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119)
 at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46)
 at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
 at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':cSipSimplemaster'.
 at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:91)
 at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:86)
 at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65)
 at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504)
 at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83)
 at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
 at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
 at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129)
 at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
 ... 32 more
Caused by: java.lang.IllegalStateException: failed to find target android-19 : C:\Users\Administrator\AppData\Local\Android\sdk
 at com.android.builder.sdk.DefaultSdkLoader.getTargetInfo(DefaultSdkLoader.java:88)
 at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:90)
 at com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.groovy:467)
 at com.android.build.gradle.BasePlugin.access$0(BasePlugin.groovy)
 at com.android.build.gradle.BasePlugin$_createTasks_closure9.doCall(BasePlugin.groovy:372)
 at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
 at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
 at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
 at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
 at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
 at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source)
 at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
 ... 39 more
2015-04-01 10:44:40,500 [1698005]   WARN - nal.AbstractExternalSystemTask - failed to find target android-19 : C:\Users\Administrator\AppData\Local\Android\sdk
com.intellij.openapi.externalSystem.model.ExternalSystemException: failed to find target android-19 : C:\Users\Administrator\AppData\Local\Android\sdk
 at com.android.tools.idea.gradle.project.ProjectImportErrorHandler.createUserFriendlyError(ProjectImportErrorHandler.java:225)
 at com.android.tools.idea.gradle.project.ProjectImportErrorHandler.getUserFriendlyError(ProjectImportErrorHandler.java:103)
 at com.android.tools.idea.gradle.project.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:321)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:367)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:333)
 at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:203)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116)
 at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:41)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:37)
 at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59)
 at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)
 at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49)
 at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48)
 at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137)
 at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123)
 at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$2.execute(ExternalSystemUtil.java:406)
 at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3$2.run(ExternalSystemUtil.java:483)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:471)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
 at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
 at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:380)
 at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
 at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149)
2015-04-01 10:44:40,500 [1698005]   WARN - radle.project.ProjectSetUpTask - 
2015-04-01 10:44:40,501 [1698006]   INFO - radle.project.ProjectSetUpTask - failed to find target android-19 : C:\Users\Administrator\AppData\Local\Android\sdk
Consult IDE log for more details (Help | Show Log)
2015-04-01 10:44:59,763 [1717268]   INFO - ellij.vfs.persistent.FSRecords - Contents:16384 of 144781555, reuses:82 of 73161 for 1173
2015-04-01 10:45:13,819 [1731324]   INFO - indexing.UnindexedFilesUpdater - Unindexed files update done in 77221 ms
2015-04-01 11:05:26,225 [2943730]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/emmet.xml file is null
2015-04-01 11:05:26,335 [2943840]   INFO - s.impl.stores.FileBasedStorage - Document was not loaded for $APP_CONFIG$/postfixTemplates.xml file is null

2.对应着,Android Studio中也有错误提示:

1
2
Error:failed to find target android-19 : C:\Users\Administrator\AppData\Local\Android\sdk
<a href="install.android.platform">Install missing platform(s) and sync project</a>

failed to sync gradle project CSipSimple-master

很明显:

好像是由于:

没有安装android的image,所以找不到android-19.

抽空再去安装android的image

3.然后点击了:

Install missing platform(s) and sync project

后,去安装:

SDK quick installation android sdk platform 19

installing requested componets for android sdk

对应log:

1
2
3
4
5
6
7
8
9
10
11
12
13
Loading SDK information...
Refresh Sources:
  Fetched Add-ons List successfully
  Refresh Sources
  Failed to fetch URL https://dl-ssl.google.com/glass/gdk/addon.xml, reason: Connect Connection timed out: connect
Refresh Sources:
  Failed to fetch URL https://dl-ssl.google.com/glass/gdk/addon.xml, reason: Connect Connection timed out: connect
Installing Archives:
  Preparing to install archives
  Installing SDK Platform Android 4.4.2, API 19, revision 4
    Installed SDK Platform Android 4.4.2, API 19, revision 4
  Done. 1 package installed.

 

【总结】

此处Android Studio中出现

Error:failed to find target android-19

是因为没有安装Android SDK Platform 19(Android 4.4.2 API 19),去按照提示安装好即可消除此错误。

Android Studio中提示:Project SDK is not defined

Android Studio中提示:Project SDK is not defined
 

【背景】

之前用Android Studio去打开一个项目后,结果遇到提示:

Project SDK is not defined

如图:

android studio Project SDK is not defined

【解决过程】

1.试着去点击Setup SDK,出现设置对话框:

popup select project sdk choose android api 21 platform

然后就卡死了好一会。

然后就好了,就没了这个提示了。

 

【总结】

好像是Android Studio对于刚使用的时候,没有确定Android的SDK,所以需要去设置一下对应的所用的版本。

此处选择默认的Android API 21 Platform(java version 1.7.0_76)

即可。

其中java version 1.7.0_76是此处本地所安装的java(jdk)的版本。

15 款 15 寸 macbook pro 使用 Android Studio 卡吗?

 15 款 15 寸 macbook pro 使用 Android Studio 卡吗?

 

winsonwen · 4 天前 · 1657 次点击

本人贫穷落后,依然还在用着 15 款的 15 寸 mbp,使用 Android Studio 开发时,经常在 XML 中编辑 layout 时卡卡的,增加个组件,修改下宽高都卡,得等个好几秒,as 内存方面已经配置到 4096m,as 版本为 4.1.3 。

请问下大家有没有用这款机子开发安卓的,有没有遇到这种问题,有没有解决办法?是不是该换电脑了?

对了,硬盘换了个 14 款的 MacBook 的 512G,sata 协议,读写都在 600M/s,是否跟这个有关呢?

22 条回复    2021-09-26 15:40:35 +08:00

20015jjw
    1

20015jjw   4 天前

看项目大小
估计卡
woxihejinghao
    2

woxihejinghao   4 天前

需要换了
BrettD
    3

BrettD   4 天前 via iPhone

活动监视器看一下是 CPU 、内存还是硬盘 IO 瓶颈了
Leonard
    4

Leonard   4 天前

换吧,等新款
NewTab12138
    5

NewTab12138   3 天前

卡,前几天闲鱼卖了,准备买新款
GaoYibo
    6

GaoYibo   3 天前

我 2020 款都有点卡
Thresh
    7

Thresh   3 天前

@NewTab12138 你卖了多少钱。我有一个 15 款 15 寸的 i7 2.2 ,16GB 的… 挂了几天没人看呀..
BBCCBB
    8

BBCCBB   3 天前

继续加内存..
NewTab12138
    9

NewTab12138   3 天前

@Thresh 挂 4000 以内就有人看了,我那款电池循环 700 多次,电池不行了,卖了 3600
secretman
    10

secretman   3 天前

不知道我 16 年 *代 touchbar 13 寸的能卖几多,感觉只能 2800-3000 了
Helsing
    11

Helsing   3 天前 via iPhone

Thresh
    12

Thresh   3 天前

@NewTab12138 我是走了企业内部维修渠道,换了电池和键盘。现在电池循环 228,标的 4000 …. 一个人都木有.. 感觉再没人看,就 tm 下架了自己用到报废了
evilwk
    13

evilwk   3 天前

Android Studio 已经更新到*新版本,公司 15 年 16G 内存的机器,不感觉卡,电池鼓包换了新的电池。
liuzhedash
    14

liuzhedash   3 天前

卡,不过现在用 mbp 2019 也卡,我当时换掉 mbp 2015 主要原因是 xcode build 一次实在是太慢了。
palxie
    15

palxie   2 天前

我还是 15 年 13 寸的, 正常开个 android studio 不卡的, 开几个浏览器, webstrom 开启, 就卡了, 我是 8g 内存, 有点不够用
darkengine
    16

darkengine   2 天前

机器内存是多少呢,我现在用的也是 2015 款的 15,16GB 的。经常同时开 AS 和 XCode,除了打包的时候,或者 AS 在新建索引的时候比较卡之外其他时间都还好。不过确实寿命也差不多到头了。
jimiton
    17

jimiton   2 天前

我也想换掉了
winsonwen
    18

winsonwen   1 天前

@GaoYibo 是 m1 的吗?
winsonwen
    19

winsonwen   1 天前

@darkengine 16g 内存的,我主要是改 layout xml 时卡得受不了,打包慢点都还能接受
winsonwen
    20

winsonwen   1 天前

@Leonard 等 m1x 么?现在 arm 的兼容性怎样?开发安卓来说。
winsonwen
    21

winsonwen   1 天前

@palxie 15 款 13 寸的确实,cpu 和内存都不够用了

Android Studio 提示 Cannot resolve symbol ‘XXX’ 问题如何解决

现状,Android Studio 对于一些 Symbol 不能 Resolve, 具体请看图 1 、图 2 。
图 1: %title插图%num
图 2:%title插图%num

试过的方法
1. Clean Project
2. Invalidate and Restart
均没用

求个解决方案

22 条回复    2021-07-21 17:21:16 +08:00

thetbw
    1

thetbw   23 天前

是不是 gradle 的问题,跑一下看他会报什么错
AoEiuV020
    2

AoEiuV020   23 天前

ListView ?这不是 android 内部的组件吗,普通安卓项目自然没法访问一些内部的变量,代码都不在你的项目里,
要看就下载完整安卓源码项目试试,
sunpj
    3

sunpj   23 天前

应该是少了个依赖
zhaoyuting
    4

zhaoyuting   23 天前

@thetbw
不知道怎么操作…
整个项目可以正常打包,也能调试。

我点进去 android SDK 的类 ListView 出现了一堆红色,后来我点进 Context 类里面也是同样的一堆红色:Cannot resolve symbol 。

@AoEiuV020
你们的 Android Studio 在查看 SDK 类的源代码的时候也是同样的情况吗?
我之前没搞过 android,这个现象是不是挺正常的 . . . . 都这样?

guchengyehai1
    5

guchengyehai1   23 天前 via iPhone

这是因为那些 class 都是定义在系统中
root99527
    6

root99527   23 天前

mOldSelectedPosition 是哪里定义的?
gtanyin
    7

gtanyin   23 天前

@zhaoyuting 都这样,没问题
zhaoyuting
    8

zhaoyuting   23 天前

@root99527
mOldSelectedPosition 是在 Adapter
zhaoyuting
    9

zhaoyuting   23 天前

@root99527
mOldSelectedPosition 是在 AdapterView 里定义的。AdapterView 是 ListView 的父类的父类。
这是我靠搜索搜到的,因为 cannot resolve symbol,没得跳转,只能手动搜了。

@sunpj 我再看看是怎么回事

@guchengyehai1
@gtanyin
好的,学习了

secretman
    10

secretman   23 天前

上面那些什么在系统里的都是瞎说, 你都 import 了。
一般不管他过一段时间就好,受不了就备份 .idea 、.gradle,然后删了重新打开项目试试

secretman
    11

secretman   23 天前

Android Stduio 经常各种泛红但是其实没错,IDE 垃圾

secretman
    12

secretman   23 天前

@secretman 看走眼了,你这是源码,下载一份完整的编译吧,你现在打开的是 SDK 里面的,对不起楼上的大哥们
cg2dev
    13

cg2dev   23 天前

如果是 App 应用开发,这种系统包里面的报错可以忽略,因为他依赖于其他的包,但是对于你应用开发没有影响,因为你开发过程属于编译时。到了设备上是运行时,系统里面集成了他依赖的各个 jar,所以不会报错。

如果你是系统开发,可以将他依赖的 bootclasspath 里面的 jar 全部复制到工程中以 compileOnly 的方式依赖,就可以消除奥错了。

winterbells
    14

winterbells   23 天前 via Android

ls 好像有种 Mac OS 帖子里喷 Windows 的感觉…
fredli
    15

fredli   23 天前

检查一下 JDK,再试试 Invalidate and Restart
HarryQu
    16

HarryQu   23 天前

我看了下 ListView 的源码,import 中报红的部分注解,点击可以跳转。报红的部分成员变量可以在父类中找到。

但是像 ViewRootImpl 类就找不到了。如果想要研究系统源码的话,直接使用 Android SDK 并不方便。

在别人的文章中看到的:
在研究 Android SDK 源码的时候,经常会发现部分 API 报红,点击无法跳转,这对于研究源码来说非常的不方便。

Android 有两种类型的 API 不能通过 SDK 访问。

一种是在 com.android.internal 包中的 API,称之为 internal API 。

另一种是被标记为 @hide 属性的类和方法,这是一组被隐藏的 API,称之为 hidden API 。

当使用 Android SDK 进行开发的时候,应用默认引用了 android.jar ,它位于 SDKDir\platforms\android-X 目录下( X 代表 API 级别),默认移除了所有的被 @hide 标识的方法或者类以及 internal 包下的类。当应用在设备上运行时,它会加载 framework.jar 。简单来说,framework.jar 和 android.jar 等同,但是没有移除 internal API 和 hidden API 。Hidden API 之所以被隐藏,是想阻止开发者使用 SDK 中未完成或不稳定的部分。因为这些 API 可能有问题:

1. 隐藏的 API 在未来的 Android 版本中可能被删除。
2. 可能会被修改方法签名或字段类型。
3. 设备制造商还可能会删除或修改隐藏的 API,这可能会影响这部分设备。

引用的两篇文章:
https://zhuanlan.zhihu.com/p/33241064
https://www.jianshu.com/p/fbf45770ecc8

rrZ2C
    17

rrZ2C   22 天前

是不是 因为 @UnsupportedAppUsage
/**
* The last selected position we used when notifying
*/
@UnsupportedAppUsage
int mOldSelectedPosition = INVALID_POSITION;
mail2dechao
    18

mail2dechao   22 天前

将对应的依赖重新删除添加并同步就好了
fan123199
    19

fan123199   22 天前

对于自己工程,要各种删除.gradle .idea build 等目录可解决。但是源码,我没有找到银弹
ikas
    20

ikas   22 天前

你这是看源码…sdk 带的那个也不是完整系统源码啊….跟你项目没有任何关系..
Helsing
    21

Helsing   21 天前 via iPhone

楼上说的对,你查看的是源码,里面飘红是很正常的,因为引用了很多其他的系统源码,而你的工程里又没有。想看源码的话可以谷歌一下怎么把源码导入 Android Studio
zhanlanhuizhang
    22

zhanlanhuizhang   16 天前

你这是遇到了*端情况,你把编译的所有相关文件全部删除。然后改个名称。重新打开就可以了。settings.gradle 里面的项目名称也改一下。rootProject.name

Android Studio利用host文件配置dl.google.com的国内镜像源

国内的Android开发者,基本每隔一段时间就会碰到项目突然不能编译的情况。sdk更新、插件安装也有诸多不便,环境的折腾确实伤透了脑筋。本文主要记录下使用host配置dl.google.com的国内镜像。

文章主要参考了Android Studio配置国内镜像源(利用hosts)
该文章很清晰了,但看那篇文章其实就可以了。那么为什么我还多余的记录这篇文章呢?作为一个笔记和备份吧!方便自己查找,毕竟现在网上不靠谱的文章太多,自己验证过靠谱的,还是记录下比较稳妥。废话不说了,以下进入正题。

1. 用文本编辑器打开host文件
对于Windows系统,host文件所在路径为:

C:\Windows\System32\drivers\etc\hosts
1
2. 添加映射
在文件末尾直接添加如下行

203.208.41.43 dl.google.com
1
其中 203.208.41.43 是通过 http://ping.chinaz.com/ 该检测网站对进行域名 dl.google.com进行ping检测得到了,目前这个还是可以用的,如果后来不行了可以去该网站ping dl.google.com 再另外找一个

3. 配置Android Studio
3.1 vmoptions文件编辑
打开Android studio 的根目录,进入bin文件夹,用记事本或notepad++打开studio.exe.vmoptions或studio64.exe.vmoptions
在*后一行

-da
1
之上,以及

-Djna.boot.library.path=
1
之下
添加上如下配置行

-Djava.net.preferIPv4Stack=true
-Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml
-Didea.patches.url=http://dl.google.com/android/studio/patches/
1
3.2 代理设置
打开Android Studio后,在setting->http proxy中配置代理为No proxy,然后重启Android Studio即可。重启后,进入plugin管理的设置可以看到,插件都能下载了。

3.3 SDK Updates Sites设置
Android Studio进入到Android SDK的设置,选择SDK Updates Sites 的tab项,左下角勾选Force那个选项后应用

AndroidStudio介绍,代理配置,特性,技巧及从eclipse迁移到as

前言:
Android Studio 是google官方正式开发Android应用程序的开发工具,这玩意是基于IntelliJ IDEA,AndroidStudio 提供如下功能:


    Flexible Gradle-based build system
    Build variants and multiple apk file generation
    Code templates to help you build common app features
    Rich layout editor with support for drag and drop theme editing
    lint tools to catch performance, usability, version compatibility, and other problems
    ProGuard and app-signing capabilities
    Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud Messaging and App Engine
    And much more

 

简单说:
灵活的gradle编译系统
编译变量和多apk的生成(变量是指不同产品的标识,比如debug和release)
代码模板帮助我们构建具有相同特性的app
支持布局拖拽和主题编辑的布局编译器
line tools 工具
签名支持
google 云平台

For specific Android Studio how-to documentation, see the pages in the Workflow section, such as Managing Projects from Android Studio and Building and Running from Android Studio. For a summary of the latest changes to Android Studio, see the Android Studio Release Notes.

如果你用as做Android开发,可以看看这些workflow这部分文档,比如在as中管理工程,编译和运行app以及as的历史版本。


1,Project and File Structure 工程目录结构及对应的文件结构
这里写图片描述
Project 整个工程目录结构
Packages每个项的目目录结构,包含src和res
Android每个项目的目录结构,包含src,res, manifests和整体的gradle配置文件
2,Android Build System Android编译系统,也就是使用gradle

3,Debug and Performance 调试及各种性能工具

Android Studio provides a number of improvements to assist you in debugging and improving the performance of your code, including an improved virtual device management, inline debugging, and performance analysis tools.

4,Android Virtual Device (AVD) Manager 模拟器管理

5,Inline debugging 调试

6,Memory and CPU monitor 内存和cpu监听

7,Heap dump 内存镜像,可以看到内存的

8,Allocation tracker 内存分配和跟踪

9,Data file access 数据存储

10,Code inspections 代码检查及命令行模式

11,Annotations in Android Studio 注解包的依赖

12,Inferring nullability 在你使用分析工具的时候,null的验证
To run a nullability analysis in Android Studio, select the Analyze > Infer Nullity menu option. Android Studio inserts the Android @Nullable and @NonNull annotations in detected locations in your code. After running a null analysis, it’s good practice to verify the injected annotations.

13,Log messages log信息


AndroidStudio Configuration

SDK Manager 更新配置
Settings –>Appearance –>System Settings–> Updates

Update channels 更新渠道

Canary channel:  二进制
Dev channel:     开发
Beta channel:    测试
Stable channel:  稳定

这里写图片描述

Proxy Settings 代理配置:
这里写图片描述

For application-specific HTTP proxy settings, set the proxy settings in the build.gradle file as required for each application module.
每个app的配置:

apply plugin: 'com.android.application'

android {
    ...

    defaultConfig {
        ...
        systemProp.http.proxyHost=proxy.company.com
        systemProp.http.proxyPort=443
        systemProp.http.proxyUser=userid
        systemProp.http.proxyPassword=password
        systemProp.http.auth.ntlm.domain=domain
    }
    ...
}

 

For project-wide HTTP proxy settings, set the proxy settings in the gradle/gradle.properties file.
整个工程的配置:

# Project-wide Gradle settings.
...

systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain

systemProp.https.proxyHost=proxy.company.com
systemProp.https.proxyPort=443
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.auth.ntlm.domain=domain

...

 

Features
不做过多介绍:
Translations Editor i18N的适配编辑器
Android Wear and TV support 手环和tv开发的支持
Fingerprint Support 指纹识别的支持
Developer Services google 的开发服务

Ads using AdMob
Analytics Google Analytics
Authentication using Google Sign-in
Notifications using Google Cloud Messaging

 

Public and Private Resources 公用私有资源,这个值得研究

Tips and Tricks
开发技巧和秘籍:部分快捷键,反编译,注解,布局的所有机型视图

Migrating from Eclipse ADT
迁移工作,从eclipse迁移到AndroidStudio
Project Structure 工程目录:
整体对比:
这里写图片描述

目录结构对比图:

这里写图片描述这里写图片描述
这里写图片描述

Mainfest对比:
这里写图片描述

Application ID for package identification

apply plugin: 'com.android.application'

android {
   compileSdkVersion 19
   buildToolsVersion "19.1"

   defaultConfig {
       applicationId "com.example.my.app"
       minSdkVersion 15
       targetSdkVersion 19
       versionCode 1
       versionName "1.0"
   }
 ...

 

Build variants 不同包名打包配置:

productFlavors {
     pro {
          applicationId = "com.example.my.pkg.pro"
     }
     free {
          applicationId = "com.example.my.pkg.free"
     }
}

buildTypes {
    debug {
          applicationIdSuffix ".debug"
    }
}
....

 

Dependencies 依赖库

dependencies {
   /*  ,exclude: 'android-support-v13.jar'' */ /*哪个jar不被编译*/
   compile fileTree(dir: 'libs', include: ['*.jar'])
   /*compile files('libs/*.jar')*/
   compile 'com.android.support:appcompat-v7:22.0.0'
   // 可以不适用appcompat-v7
}

 

 // Module dependency  依赖库
    compile project(":lib")

    // Remote binary dependency
    compile 'com.android.support:appcompat-v7:19.0.1'

    // Local binary dependency  本地jar
    compile fileTree(dir: 'libs', include: ['*.jar'])

 

Gradle-based Build Process gradle 命令

assemble
assembleDebug
assembleRelease

 

直接在Terminal 中输入gradlew assemble
这个会下载对应的gradle版本:
对应的配置在 gradle\wrapper\gradle-wrapper.properties

#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

 

如果想看所有的命令: Gradle 默认在右边
这里写图片描述

Using the Android Studio build system’s declarative logic
宏定义

def getVersionCode) {
      def code = …
      return code
}

android {
    defaultConfig {
        versionCode getVersionCode()
              …
    }
}

 

Resource Optimization res优化
Resource shrinking res缩减

android {
    ...

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

Filtering language resources 语言资源过滤:
apply plugin: 'android'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        resConfigs "en", "de", "es" //Define the included language resources.
        resConfigs "mdpi", "hdpi"
    }
...

 

Files to ignore 忽略文件配置:

A number of Android Studio files are typically not added to version control as these are temporary files or files that get overwritten with each build. These files are listed in an exclusion file, such as .gitignore, for the project and each app module. Typically, the following files are excluded from version control:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures

Android Studio 点击按钮跳转新界面

Android Studio 点击按钮跳转新界面
问题描述
首先,我们有两个Java文件和与之绑定的xml文件。此处以HistoryActivity.java,activity_history.xml 和 EventDetail.java,activity_event_detail.xml为例。我们要实现在HistoryActivity界面中添加一个按钮,并且点击跳转到EventDetail界面。

为HistoryActivity界面添加按钮
在其对应的activity_history.xml 中:

<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.HistoryActivity”>

<Button
android:id=”@+id/History”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Historical Event”
android:layout_alignParentLeft=”true”
android:layout_alignParentStart=”true”/>
</android.support.constraint.ConstraintLayout>

我们通过android:id=”@+id/History”语句讲button的id设置为History,在之后设置点击事件时使用。

为History按钮添加点击事件
在HistoryActivity.java中:

package com.example.xff.tm;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.Intent;
import android.widget.Button;
import android.widget.*;

public class HistoryActivity extends AppCompatActivity {
Button button = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
button = (Button)findViewById(R.id.History);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(HistoryActivity.this,EventDetail.class);
startActivity(intent);
}
});
}

}

通过之前定义的button的id来找到对应button,为之设置点击监听。当发生点击事件时,通过Intent进行跳转。
#在manifests->AndroidManifest.xml中添加activity(这个步骤通常是添加点击事件之后系统自动生成,可以进行检查)

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.example.xff.tm”>

<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:roundIcon=”@mipmap/ic_launcher_round”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”>
<activity android:name=”.HistoryActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”.EventDetail”></activity>
</application>

</manifest>

EventDetail.java,activity_event_detail.xml
作为被跳转的界面,这两个文件只需要完成自己的功能即可:
EventDetail.java:

package com.example.xff.tm;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class EventDetail extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_event_detail);
}
}

activity_event_detail.xml:

<?xml version=”1.0″ encoding=”utf-8″?>
<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.EventDetail”>

</android.support.constraint.ConstraintLayout>

Android Studio | 单击按钮闪退、跳转界面闪退问题解决

问题1、单击按钮闪退:
String null 问题。

原报错代码:

%title插图%num

改正代码:

%title插图%num

原因:getText的返回值是一个Charsequence的接口,用.toString()方法转换成string即可。

问题2、单击按钮跳转界面闪退:
Activity没有注册。
在onClick(view v)函数中,代码如下:

%title插图%num

跳转失败的原因:没有注册希望要跳转到的界面(register界面)的Activity。Alt+Enter快捷键之后,选择add activity to maniefest。这样做就可以快捷地在AndroidManifest.xml中注册该Activity了。

%title插图%num
================= 更新============================
问题:在跳转的时候,点击按钮总是闪退

解决过程:
排除了未注册、代码逻辑错误等,*后发现是没有让java里的变量和xml文件里的控件绑定。绑定之后问题解决。这是个小错误,但是报错的提示往往不会指出是这个问题,而是定位在其他行,今后要多注意。

%title插图%num

Android Studio安卓开发如何按钮退出程序(所有的Activity)

Android Studio安卓开发如何按钮退出程序(所有的Activity)
只需要一个专门的集合对所有的Activity进行管理
(kotlin版本)

1. 新建一个单例类ActivityCollector作为Activity的集合

/* 单例类ActivityCollector作为Activity的集合,对所有的Activity进行管理 */

object ActivityCollector {
private val activities=ArrayList<Activity>()

/* 用于向ArrayList中添加Activity */
fun addActivity(actity:Activity){
activities.add(actity)
}

/* 用于从ArrayList中移除Activity */
fun removeActivity(actity: Activity){
activities.remove(actity)
}

/* 用于将ArrayList中存储的Activity全部销毁 */
fun finishAll(){
for (activity in activities){
if (!activity.isFinishing){
activity.finish()
}
}
activities.clear()
}
}

2. 新建Class取名BaseActivity,添加代码让其继承AppCompatActivity,并重写onCreat()方法,重写onDestroy()方法

open class BaseActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ActivityCollector.addActivity(this)
}

override fun onDestroy() {
super.onDestroy()
ActivityCollector.removeActivity(this)
}
}

3. 让所有Activity继承BaseActivity,由于BaseActivity继承自AppCompatActivity,所以所有Activity现有功能都不受影响

class MainActivity : BaseActivity()

4. 设置按钮的点击事件,只需调用ActivityCollector的finishAll方法

//退出程序
set_close.setOnClickListener {
ActivityCollector.finishAll()
}

Android studio 如何查看 library 间的依赖关系

一、配置环境
Android Studio中使用的 gradle 版本一般不是*新版,所以在使用其自带的 Terminal 时容易报版本过低的错误,为了方便使用,我从 gradle
官网下载了*新版的 gradle ,然后配置好 gradle 的环境变量以方便使用。

二、gradle task 相关内容
gradle 本身不提供查看 library 依赖关系的命令,幸好 Android Studio 提供了可供查看的 task ,位于各个 module 的 help 任务堆中,如下图:

%title插图%num

%title插图%num

双击 dependencies 执行该任务,可以看到在 gradle console 中均没有得到依赖关系,结果如下图所示:

%title插图%num

从上图可以看出无论我们执行哪个 module 下的 dependencies 其结果都是相当于在 Root project 执行了该任务;那么在 app project 或者 test01library project 中执行该 dependencies 任务呢?此时就需要我们通过命令行的方式执行 dependencies 了。

1.查看 app project 的依赖关系
在该路径下打开命令行工具,输入

gradle dependencies

稍等一会,便可看到 library 的依赖关系,如下图所示:

%title插图%num

但是命令行中会生成大量内容,并且无法看到全部信息,为了方便查看,我们将输出信息写入文本文件中

gradle dependencies >log.txt

在当前目录下将生成一个 log.txt 文件里面包括所有 app project 所依赖 library 的所有依赖关系(test01library 同理) 。

2.查看指定类型的依赖关系
由于 dependencies 的配置类型太多这里仅以编译时 library 为例说明:

// 查看 compile 时的依赖关系
gradle dependencies –configuration compile

关于其他配置类型可以通过这条命令获得:

gradle dependencies –info

可以看到有很多参数

%title插图%num

3.在 Root project 下查看依赖关系
在项目根目录下我们可以通过下面命令达到和上面相同的效果,如:

// gradle :project name:dependencies [–configuration compile]
gradle :app:dependencies –configuration compile

三、总结
查看各 library 的依赖关系是为了避免出现java.util.zip.ZipException: duplicate entry exception android/support/vX/…/xxx.class 异常;由于 app project 必定会直接或间接引用其他所有 project, 所以,只查看这一个 project 的依赖关系即可得到全部信息。

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速