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.+。想要不改动就解决的话,下载一个Android3.0或者2.3 。使用新版Android Studio的往下看
如果你想要符合你编译器默认的,就新建一个项目,对比一下,然而我在使用了它新建后默认的classpath3.6.1和gradle5.5后,出现了,NoClassDefFoundError: com/android/builder/Version,网上搜不到,可能需要所有配置都改一下,包括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编译通过后更方便些,当然有更好的办法,可以留言告诉我一下,感谢哦。
写的很乱,不过主要是编译失败的问题,看对应的就行了,搞了一上午配置了,喜欢的话点个赞哟。
来源:CSDN
作者:咳咳涯
链接:https://blog.csdn.net/qq_27454233/article/details/104648089