Android:Unable to determine application id: com.android.tools.idea.run.ApkProvisionException
Android Studio 从3.0升级到3.6+之后,安装软件在下方run的调试台出现
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: debug。
点击上方run的绿色箭头按钮,除了run调试台,没有任何反应
编译正常,代码无错误,在app/build/outputs/apk其实是有debug包生成的,把它拷贝到手机上,也能安装,如果你不嫌麻烦的话。不过不能安装就不能debug。
出现这个问题,是由于Android Studio升级后,他的gradle和classpath不匹配。这是一份,2015年的项目,依赖包多,代码老化,使用的classpath是2.3.3,gradle是3.3,现在的classpath能到3.6+,gradle能5.+。想要不改动就解决的话,下载一个Android Studio3.0或者2.3 。使用新版Android Studio的往下看
如果你想要符合你编译器默认的,就新建一个项目,对比一下,然而我在使用了它新建后默认的classpath3.6.1和gradle5.5后,出现了,NoClassDefFoundError: com/android/builder/Version(解决办法:https://blog.csdn.net/qq_27454233/article/details/105123212),网上搜不到,可能需要所有配置都改一下,包括app下的build.gradle,改compileSdkVersion和buildToolsVersion,需要的小伙伴可以尝试一下,因为此项目依赖了大量的第三方和引入了好几个module,所以这些改配置很容易世界爆炸,还是改个版本没那么高的把。有大佬知道的话这个错误是为什么,望留言告诉我下,万分感谢。
可以把依赖的compile改成implementation,修改的好处,网上很多。
那么我的版本:
项目下build.gradle的buildscript{dependencies {classpath 'com.android.tools.build:gradle:3.0.1'}}
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
出现
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':classpath'.
在项目下的build.gradle两个repositories添加 google(),假如module里有classpath的,要把module的对应上,同样添加google()
apply from: 'config/global.gradle'buildscript { ext.kotlin_version = '1.2.30' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath "com.tencent.bugly:tinker-support:1.1.1" classpath 'com.meituan.android.walle:plugin:1.1.5' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }}allprojects { repositories { mavenCentral() jcenter() google() maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } maven { url "https://jitpack.io" } maven { url "https://dl.bintray.com/thelasterstar/maven/" } maven { url "https://maven.google.com" } maven { url "https://dl.google.com/dl/android/maven2/" } flatDir{ dir 'libs' } }}task clean(type: Delete) { delete rootProject.buildDir}
出现module Unable to resolve dependency for ':app@dev/compileClasspath'的话,你看看是不是用了devCompile,使用了dev的东西,你的module是没有dev的,把dev去掉就行了。
比如说:
// for leak memory// debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'// releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'// testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
PS:升级Android Studio我也不想的啊,可是RN项目的安卓包,不升级就跑不起来,开始很多配置上的问题,用Android Studio编译通过后更方便些,当然有更好的办法,可以留言告诉我一下,感谢哦。
写的很乱,不过主要是编译失败的问题,看对应的就行了,搞了一上午配置了,喜欢的话点个赞哟。
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
- Error retrieving parent for item: No resource found that mat
- Android.mk加入aidl编译
- 使用ant自动化构建android项目
- magicIndicator使用简记
- Android(安卓)Studio:Github Error:Could not read from remote
- Fresco对Eclipse的支持以及使用教程
- android 开发中遇到错误及解决办法总结