Android及AndroidStudio问题集

                       

目录

★ 1.Android Studio 解决  Error:Unable to start the daemon process

★  2.解决Could not determine artifacts for XXXX: Skipped due to earlier error

★ 3.Read timed out

★ 4. Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle

★ 5. AS 出现 inner element must either be a resource reference or empty.

★ 6. AndroidStudio3.2 报错:Could not get unknown property 'packageForR' for task ':app:processDebugResour

★ 7. Failed to open zip File 问题解决

★8.  android8.0应用崩溃,报错: Only fullscreen opaque activities can request orientation


                  

  开篇 

★ 1.Android Studio 解决  Error:Unable to start the daemon process


异常

Error:Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------

解决方法

  1. 可能是由于杀毒软件等卸载或者禁止了daemon进程,因此,重启电脑可以解决该问题.
  2. 进入Chapter 6. The Gradle Daemon进行配置,其主要讲述C:\Users\Administrator.gradle路径下(其中Administrator是自己的用户名),新建gradle.properties文件,并写入org.gradle.daemon=true
  3. 特注:若上无法解决试试gradle.properties文件内设置 org.gradle.jvmargs=-Xmx512m 也可试试
  4. 特注:若上无法解决试试将安装C盘的.gradle目录删除掉,不要担心删除会有什么问题。大胆的删!.。


★  2.解决Could not determine artifacts for XXXX: Skipped due to earlier error


近日导入一个新的项目时遇到一个问题,在此记录一下:
Could not determine artifacts for XXXX: Skipped due to earlier error

此问题的原因还是因为依赖下载失败,去官网上查询了一下

                                                                                            image.png

官网上的解释是因为超时的原因,跳过了对同一仓库的请求,这里就比较明显,其实就是代理的问题。

国内开发环境一直是一个比较大问题,开发得一直连着代理,但是由于可能公司有自己的内网maven,所以需要过滤掉内网的Host。但是我这个地方是过滤了的,但是不知道什么原因过滤失败了,而且是部分失败。所以我需要关闭掉代理再来尝试,但是gradle这里有有一些坑了,即使你在IDE中关闭了代理,但是gradle还是会缓存代理的设置,所以需要去Users/xxx/.gradle/gradle.properties中删除掉代理。

然后再进行尝试就ok了。

3.Read timed out


报错原因:

我们都知道 androidstudio 采用的是gradle的构建方式,gradle是基于 ant 和maven的理念在构建,所以在他的build.gradle中会引入一些第三方的库。比如 jencter();  或者是mavenCentral(); 但是这两个库维护在不同的服务器上,所以两个基本上没有太大的关联 ,我们知道jencter()是全世界最大的java仓库,所以mavenCentral()有的 jencter()一定有,但是像我们之前采用的androidstudio的版本默认是用的mavenCentral()的库,但是更新以后发现google 将jencter()设为了默认库,所以有时候我们会出现读取超时的情况,所以为了解决这类问题的话可以将之前的库也放进去(虽然这个库小,但是人家维护的好啊,读取不超时啊。),并且放在jencter()之前加载,这样就可以避免一个库读取超时,从而解决问题了,暂时现在是可以的。

解决方案:

工程的build.gradle文件下的allprojects->repositories下加入

注意:要放在jcenter()之前

mavenCentral() 
maven { url 'https://maven.google.com' }

完整示例:

4. Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle


解决方案引自: https://blog.csdn.net/ITzhongzi/article/details/84661395,亲测成功

原因描述: 很多包被墙了,很多时候我们使用了代理,浏览器可以翻墙,
但是 as是没有翻墙,所以 需要在as中单独设置 设置代理,
使 as 可以翻墙,去国外下载包。 设置完之后问题便解决了……

下面提供网上目前出现的三种解决办法:

这些都可以百度到,逐一尝试了一下,还是没有解决。

实际解决方法一:

--------------------------------------------------------------------------------------------------------------------------------

1).我本地1080端口代理到了国外服务器,是可以访问国外网站的。

在这里插入图片描述

2).

在这里插入图片描述

3).

             在这里插入图片描述

原因描述: 很多包被墙了,很多时候我们使用了代理,浏览器可以翻墙,但是 as是没有翻墙,所以 需要在as中单独设置 设置代理,使 as 可以翻墙,去国外下载包。 设置完之后问题便解决了…… (亲测过,没问题的, 小老弟)原因描述: 很多包被墙了,很多时候我们使用了代理,浏览器可以翻墙,但是 as是没有翻墙,所以 需要在as中单独设置 设置代理,使 as 可以翻墙,去国外下载包。 设置完之后问题便解决了…… (亲测过,没问题的, 小老弟)

实际解决方法二

------------------------------------------------------------------------------------------------------------

在Project/build.gradle脚本 配置

 maven{ url'http://maven.aliyun.com/nexus/content/groups/public/'}

如下示例:(注意必须在jcenter()方法之上)


buildscript {
    repositories {
        google()
        //mavenCentral();
        maven{ url'http://maven.aliyun.com/nexus/content/groups/public/'}
        jcenter()
    }
}

allprojects {
    repositories {
        google()
        //mavenCentral();
        maven{ url'http://maven.aliyun.com/nexus/content/groups/public/'}
        jcenter()
    }
}
  • 阿里做了镜像仓库地址 代替了原来的仓库,就无需进行挂载墙配置。

5. AS 出现<item> inner element must either be a resource reference or empty.


今天更新AS之后,之前有一个老的项目出现如上所示的问题,导致build失败。查看错误问题之后发现代码是如下格式的:

<item name="animator" type="id">false</item>
<item name="date_picker_day" type="id">false</item>

然后网上找到了一些资料:

在开发文档中,https://developer.android.com/guide/topics/resources/more-resources#Id
也有提到说上面那种方式已经不能这么写了,新的方法如下:

<item name="animator" type="id"/>
<item name="date_picker_day" type="id"/>

如果引入的是第三方包怎么修改呢?

1、在你的项目res\values文件夹下新建ids.xml文件

2、将之前编译出错的item重新写一遍,改成下面的

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="animator" type="id"/>
    <item name="date_picker_day" type="id"/>
   ...
</resources>

重新build之后AS会自动处理这些问题。

6. AndroidStudio3.2 报错:Could not get unknown property 'packageForR' for task ':app:processDebugResour


è¿éåå¾çæè¿°

è¿éåå¾çæè¿°

看到这里看不出具体是什么错误,那就点开上上图Run tasks,来看具体的错误日志。 

è¿éåå¾çæè¿°

看图中带有ButterKnifePlugin字样,那先猜测是ButterKnife出了问题,先排查下,然后再点开上面的缩放,看看有没有什么有价值的信息。 

è¿éåå¾çæè¿°

然后发现一堆文字,然后并没什么卵用,那就先排查下ButterKnife

结果:本着黄油刀出问题的心态更新了下最新版本的黄油刀,结果项目跑起来了,然后网上查了下,确实也有人遇到了这个问题,是黄油刀本身框架的问题。


解决办法:


1.在Module的build.gradle中删除如下代码 

è¿éåå¾çæè¿°
 
2.把黄油刀换成最新的,下图中BUTTERKNIFR_VERSION = 8.5.1,把下图红框中的代码删掉 

è¿éåå¾çæè¿°
换成:

  implementation 'com.jakewharton:butterknife:8.8.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'


3.Project的build.gradle文件中原本有如下代码,BUTTERKNIFE_PLUGIN_VERSION = 8.5.1,这个删不删都行,没影响 


è¿éåå¾çæè¿°

★ 7. Failed to open zip File 问题解决


解决办法

将这里的https改成http

★8.  android8.0应用崩溃,报错: Only fullscreen opaque activities can request orientation


Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

字面意思就是说:只有不透明的全屏activity可以自主设置界面方向。

网上搜了搜,发现不是个例,这个问题出现在android8.0以上。原因是我们给Activity同时设置了

android:screenOrientation="" 
和 
<item name="android:windowIsTranslucent">true</item>

解决适配:

解决办法:删除AndroidManifest中相应Activity的 android:screenOrientation=""属性;或者删除相应Activity的theme中<item name="android:windowIsTranslucent">true</item>属性。

二者只留其一,若两种效果都需要,只能另辟蹊径了。

values-v26目录下,新建styles.xml做一个适配这个问题就会得到解决。

<resources>
    <style name="FullScreen" parent="AppTheme">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <!-- 适配android手机系统8.0(api26),Only fullscreen opaque activities can request orientation -->
        <!--用背景图消除启动白屏-->
        <item name="android:windowIsTranslucent">false</item>
    </style>
</resources>
发布了93 篇原创文章 · 获赞 68 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/Maiduoudo/article/details/90767232