Failed to install the following Android SDK packages as some licences have not been accepted

Failed to install the following Android SDK packages as some licences have not been accepted

Failed to install the following Android SDK packages as some licences have not been accepted

Failed to install the following Android SDK packages as some licences have not been accepted.
    platforms;android-28 Android SDK Platform 28
    build-tools;28.0.2 Android SDK Build-Tools 28.0.2
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

CSDN搜到的回答

首先打开命令行,进入到报错的sdk路径,找到可以处理licences的文件,我就贴出我的了

cd C:\Users\Administrator\AppData\Local\Android\SDK

cd tools

cd bin

这时该路径下有一个windows批处理文件sdkmanager,用这个来解决问题,调用命令

sdkmanager --licenses

然后等一小会就巴拉巴拉一大堆licenses等待你同意,全部选yes就可以,反正也看不懂 之后,再到AS里build一下就好了

如果没有出现错误,恭喜你,你顺利解决了该问题,出现如下错误,请继续往下看

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 5 more

搜了下stackoverflow果然已经有人遇到了类似的问题

Failed to install the following Android SDK packages as some licences have not been accepted in jitpack

If you have installed an extra Java in your computer(Note: Android Studio has it's own Java), You should make sure they have same version. Otherwise It may will occur this error. I solved it just now by setting "Android Studio/jre" path to JAVA_HOME

翻译一下就是系统里的Java环境和Android Studio的Java环境不一致导致的。可以有如下两种方法

1. 更改sdkmanager.bat文件,sdkmanager.bat搜索到系统里的java环境改为Android Studio的Java环境

复制一份sdkmanager.bat文件,重命名为sdkmanagerMy.bat,找到如下地方替换:
:findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% // set JAVA_EXE=%JAVA_HOME%/bin/java.exe 系统里的java环境改为Android Studio的 set JAVA_EXE=C:/Program Files/Android/Android Studio/jre/bin/java.exe
重新运行sdkmanagerMy.bat,就可以顺利t通过了

2. 方法一只能暂时解决这一个问题,如果在Android Studio Terminal终端里运行其他gradle命令,会出现下面的错误

```
Could not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
> Could not create service of type PluginResolutionStrategyInternal using BuildScopeServices.createPluginResolutionStrategy().
```

在命令行结尾加上 --info 可以得到详细的信息

```
Initialized native services in: C:\Users\Administrator\.gradle\native
Found daemon DaemonInfo{pid=10372, address=[2d77ba99-c74b-458b-8ac9-0a8338214e7c port:61776, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], state=Idle, lastBusy=1571794445236, context=DefaultDaemonContext[uid=b886dee7-ac9e-40e6-b46b-c28b93924d10,javaHome=C:\Program Files\Android\Android Studio\jre,daemonRegistry
Dir=C:\Users\Administrator\.gradle\daemon,pid=10372,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=2048m,-XX:+HeapDumpOnOutOfMemoryError,-Xms3072m,-Dfile.encoding=UTF-8,-Duser.country=CN,-Duser.language=zh,-Duser.variant]} however its context does not match the desired criteria.
Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=C:\Program Files\Java\jdk-12.0.2,daemonRegistryDir=C:\Users\Administrator\.gradle\daemon,pid=5960,idleTimeout=null,daemonOpts=-XX:MaxPermSize=2048m,-XX:+HeapDumpOnOutOfMemoryError,-Xms3072m,-Dfile.encoding=UTF-8,-Duser.country=CN,-Duser.language=zh,-Duser.variant]
Actual: DefaultDaemonContext[uid=b886dee7-ac9e-40e6-b46b-c28b93924d10,javaHome=C:\Program Files\Android\Android Studio\jre,daemonRegistryDir=C:\Users\Administrator\.gradle\daemon,pid=10372,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=2048m,-XX:+HeapDumpOnOutOfMemoryError,-Xms3072m,-Dfile.encoding=UTF-8,-Duser
.country=CN,-Duser.language=zh,-Duser.variant]
```

其实就是想要的javaHome地址和实际上的javaHome地址不一致导致,原因和上面的错误是一样的:系统里的Java环境和Android Studio的Java环境不一致

终极的解决方案统一系统里的Java环境和Android Studio的Java环境:修改 JAVA_HOME 环境变量为C:\Program Files\Android\Android Studio\jre

具体参考如何配置Java环境变量

配置好后不会立马生效,重启电脑,一切问题都解决了

发布了29 篇原创文章 · 获赞 3 · 访问量 1133

猜你喜欢

转载自blog.csdn.net/qq_16927853/article/details/102696100