使用android studio遇到的一些问题

目录

目录

升级到studio3.1.2之后无法编译jar包

在build文件注明仓库来源依然无法编译某些glide等github开源项目

implementation api compile的区别

项目不停的indexing的解决方法

         解决gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed

Unable to resolve dependency for ':app@debug/compileClasspath'





  • 升级到studio3.1.2之后无法编译jar包

    升级之前module编译jar包的命令如下:

 task makeJar(type: Copy) {
    delete 'build/libs/adsdk.jar' //删除已经存在的jar包
    from('build/intermediates/bundles/release/')

    into('build/libs/')//jar包的保存目录
    include('classes.jar')//设置过滤,只打包classes文件
    rename('classes.jar', 'adsdk.jar')//重命名,mylibrary.jar 根据自己的需求设置

 }
 makeJar.dependsOn(build)

   升级之后一直无法编译,后来检查发现build/intermediates/bundles/release/ 这个目录已经不存在,bundles目录改为:package-classes 目录,所以改为build/intermediates/package-classes/release/即可编译成功。

 
  • 在build文件注明仓库来源依然无法编译某些glide等github开源项目

 repositories {
        mavenCentral()
        google()

        jcenter()
    }

     因为glide等一些开源项目在maven管理,使用的时候在项目的build文件要注明mavenCentral(),开始的时候卸载google()和jcenter下面,导致总是无法编译通过。发现他找的目录是错误的。要把mavenCentral放到首位。

  • implementation api compile的区别

     sutdio 升级到3.0之后,gradle工具也升级到了4.0的版本,这个时候在配置里面的依赖关键字compile 宣布放弃,使用api和implementation,如果不看他们之间的区别会导致发生项目编译不成功的情况。

compile 'org.greenrobot:eventbus:3.1.1'

        compile 可以看做等于与api

api 'org.greenrobot:eventbus:3.1.1'

       他们与implementation不同,比如app module通过implementation依赖于moduleA, 而moduleA通过implementation依赖moduleB,那么编译app module的时候是无法将moduleB进行编译的。这个时候如果app module也需要依赖moduleB 就会出现错误。而api会将moduleA依赖的所有module也加载进来。但是并不是就直接用api就最好。因为有时候,app module并不需要依赖其他module,那么用implementation也会提升编译速度。

  • 项目不停的indexing的解决方法

       编译一个开源项目发现studio频繁的indexing,那是非常的频繁啊。最后发现是2个module的名称有问题。改过之后就ok了。在网上也发现了其他的解决方法:

     解决办法:File-->  Invalidate Caches/Restart-->   Invalidate and  Restart.

     这个方法也的确解决了一些人的问题。

  • 解决gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed

   在terminal中输入gradlew compileDebugSources 来看看具体的日志,看看代码哪里出错。

  • Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:27.1.1

       这个错误是因为在build.gradle中的buildTypes里面,只写明了release版本,没有debug版本。这个时候需要把debug版本写出来

      

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

        debug{
            minifyEnabled false
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值