安卓studio 报错
问题合集
v7无法解析
法一:
import android.support.v4.app.ActivityCompat;无法解析
1、改成import androidx.core.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;无法解析
1、改成import androidx.appcompat.app.AppCompatActivity;
android.support.v7.widget.RecyclerView无法解析?
1、改成androidx.recyclerview.widget.RecyclerView。
2、把关于android.support.v7.widget.RecyclerView的import都注释掉/删掉。
android.support.v4.view.ViewPager无法解析?
1、改成androidx.viewpager.widget.ViewPager
android.support.v4.view.PagerTitleStrip无法解析?
1、androidx.viewpager.widget.PagerTitleStrip
总之所有的v4,v7无法解析
就把前缀改成androidx,然后把关键词打出来,让软件自动补全。
或者把无法解析的import都删了,然后到下面标红的地方快捷键导入类。
法二:
所有的v7无法解析,有个更好的一本万利的方法:
//https://www.cnblogs.com/sengzhao666/p/10825663.html#:~:text=%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9A%201.%E5%85%88%E6%89%BE%E5%88%B0%E2%80%9C%20project%20structure%20%E2%80%9D%EF%BC%8C%E7%84%B6%E5%90%8E%20app--Dependencies%20%EF%BC%8C%E7%82%B9%E5%87%BB%E5%8F%B3%E4%B8%8A%E8%A7%92%E7%9A%84%E2%80%9C,+%20%E2%80%9D%EF%BC%8C%E5%87%BA%E7%8E%B0%E5%A6%82%E4%B8%8B%E5%9B%BE%E6%89%80%E7%A4%BA%202.%E7%82%B9%E5%87%BB%E2%80%9C%20Library%20dependency%20%E2%80%9D%203.%E5%86%8D%E6%90%9C%E7%B4%A2%E6%A1%86%E4%B8%AD%EF%BC%8C%20%E6%B7%BB%E5%8A%A0%E4%B8%8Acom.android.support:appcompat-v7%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%E3%80%82
即:文件
--》项目结构
--》Dependencies
--》“+”
--》Library dependency
--》“com.android.support:appcompat-v7”
--》search
--》确定
当然,法二虽然快捷,但是有时候会引发另一个问题(即下面的Manifest merger failed with multiple errors, see logs问题),搞了半小时还没解决。保险点还是法一吧。
多个活动在哪里声明?怎么设置第一个出现的活动?
多个活动在哪里声明?怎么设置第一个出现的活动?
在AndroidManifest.xml中设置。
声明活动:
<activity android:name=".活动名字"/>
设置第一个出现的活动
<activity
android:exported="true"
android:name=".活动名称">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
AndroidManifest.xml:63: AAPT: error: resource xml/filepaths (aka com.zp.mall:xml/filepaths)not found
在res下创建一个xml文件夹,在里面创建一个filepaths.xml(这个名字取决于报错信息里面的名字)。内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path
name="Pictures"
path="/" />
<external-path
name="files_root"
path="Android/data/${applicationId}/" />
</paths>
error:Manifest merger failed with multiple errors, see logs
法一:事实证明没有屁用(部分情况下有用)
./gradlew processReleaseManifest --stacktrace或gradlew processReleaseManifest --stacktrace
打印出解决办法
法二:
打开AndroidManifest.xml
下面有“文本”和“Merged Manifest”按钮,点击“Merged Manifest”按钮
在出现的页面中找“ERROR”,再继续百度
(这次出现的问题解决方法:
在AndroidManifest.xml的<application>中添加下面这两句
android:appComponentFactory=""
tools:replace="android:appComponentFactory")
Failed to apply plugin 'com.android.internal.application'.
File --> Settings --> Build,Execution,Deployment --> Build Tools --> Gradle --> Gradle JDK --> 可选择Embedded JDK Version版本(从java8到android11)
Plugin with id 'com.android.application' not found
在build.gradle(app)的最前面加上下面这一段:
buildscript {
repositories {
mavenCentral() // or jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
}
The specified Gradle installation directory 'xxx' does not exist.
进入gradle下的gradle-wrapper.properties,对distributionUrl进行修改,改成本地的gradle.zip包地址。
注:地址寻找方法:搜索“gradle-“就会出现很多版本的gradle.zip。如“gradle-7.3.3-bin.zip”,进入文件夹,选所有包里版本最新的一个。复制地址。
改完后的地址:(注意地址前面要加【file:/】,)
distributionUrl=file:/C:/Users/Administrator/.gradle/wrapper/dists/gradle-7.3.3-bin/6a41zxkdtcxs8rphpq6y0069z/gradle-7.3.3-bin.zip
cvc-complex-type.2.4.a: ��������Ԫ�� 'base-e
Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by build file 'app\build.gradle'
1,将setting.gradle文件的该配置注释掉:
//dependencyResolutionManagement {
// repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
// repositories {
// google()
// mavenCentral()
// jcenter() // Warning: this repository is going to shut down soon
// maven { url 'https://jitpack.io' }
// }
//}
2,在根目录下的build.gradle文件中增加如下配置:
allprojects {
repositories {
google()
mavenCentral()
// jcenter() // Warning: this repository is going to shut down soon
}
}
3,然后点击按钮“sync project with gradle files”即可正常
setContentView(R.layout.activity_main);崩溃
一切良好,没有任何报错,但是运行app会黑屏(真机闪退);
调试发现是setContentView这一句错误。
解决方案:翻所有的layout,总有一个爆红。问题就在这。
setContentView报的错,没有一个layout是无辜的。
WhorlView问题
这个包简直就是无语。在导入依赖的时候看别人都是用下面语句:
implementation 'com.tt:whorlviewlibrary:1.0.2'
或
implementation 'com.example.whorlviewlibrary.WhorlView'
我就是不行,资料也少。最后一番尝试解决办法为:
到WhorlView包这个链接里面把这个包下载下来。然后复制entry到你项目的一级文件夹里(即跟.gradle是同一个文件夹),复制tt到[src/main/java/com]下面的文件夹(即跟example是并列文件夹)。不用管依赖,然后就可以了。
android:exported needs to be explicitly specified for <activity>
法一:打开清单文件,在有filter的activity中加入语句android:exported="true"
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
法二:打开app的build.gradle,将compileSdk和targetSdk的版本改为30。(如果清单文件中也有sdk,也改为30)
一切gradle的错误
这种坑踩得真的不爽啊。gradle和插件(plugs)是要配套的。所以之前一直都是两个单独调,下了整个晚上,下了几百个版本也没用。
版本对应如下:
| 插件版本 | 所需的最低 Gradle 版本 |
|---|---|
| 8.0 | 8.0 |
| 7.4 | 7.5 |
| 7.3 | 7.4 |
| 7.2 | 7.3.3 |
| 7.1 | 7.2 |
| 7.0 | 7.0 |
| 4.2.0+ | 6.7.1 |
| Plugin version | Required Gradle version |
| 1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
| 1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
| 1.5.0 | 2.2.1 - 2.13 |
| 2.0.0 - 2.1.2 | 2.10 - 2.13 |
| 2.1.3 - 2.2.3 | 2.14.1+ |
| 1.5.0 | 2.2.1 - 2.13 |
| 2.3.0+ | 3.3+ |
| 3.0.0(alpha1-6) | 4.1 |
首先:gradle在哪里设置:
在项目的gradle.properties里面
distributionPath=wrapper/dists
distributionBase=GRADLE_USER_HOME
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
其次,插件在哪里设置:
在项目的build.gradle里面
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
其他问题,比如需要在build.gradle里面的两个repositorise添加geogle(),但是其实geogle()有时候也不行,还是国内镜像网站nb。总的搞好是这样:
buildscript {
repositories {
maven() {
url 'https://maven.aliyun.com/repository/jcenter'
}
maven(){
url 'https://maven.aliyun.com/repository/google'
}
maven {
url 'https://maven.aliyun.com/repository/public'
}
maven {
url 'https://maven.aliyun.com/repository/mapr-public'
}
maven { url 'https://maven.google.com/'}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven() {
url 'https://maven.aliyun.com/repository/jcenter'
}
maven(){
url 'https://maven.aliyun.com/repository/google'
}
maven {
url 'https://maven.aliyun.com/repository/public'
}
maven {
url 'https://maven.aliyun.com/repository/mapr-public'
}
maven { url 'https://maven.google.com/'}
jcenter()
}
}
再还有说gradle有问题的就去“文件”--“项目结构”--“Project”里面把gradle和插件版本改了。因为上面是在代码里面改,光这样还不行,在项目结构里还得来一遍。版本跟上面的一样就行,比如:

libs的问题
compile fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
compile api
testCompile testImplementation
debugCompile debugImplementation
releaseCompile releaseImplementation
provided compileOnly
Plugin [id: ‘com.android.application‘, version: ‘7.x.x‘, apply: false] was not found i...
https://www.jianshu.com/p/8fdf1e6ce444
Could not get unknown property ‘versions‘ for object of type com.android.build.gradle.AppExtension
https://blog.csdn.net/shaoyezhangliwei/article/details/100516775
Error resolving plugin [id: 'org.jetbrains.kotlin.plugin.serialization', version: '1.6.21']
dcendents:android-maven-gradle-plugin版本对应
依赖导入失败
一般的依赖导入失败不会直接报错,表现一般为:明明在build.gradle正确引入依赖,在activity中仍然爆红,"无法解析符号xxx",在构建中你就能看到有警告,"Failed to resolve: "。
解决方法:(以下涉及添加代码都是在setting.gradle中操作)
对于github的依赖导入失败:
maven { url 'https://jitpack.io' }
如果github的依赖还是无法导入,或者aliyun的依赖无法导入,可以尝试添加以下:
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
如果还是无法导入依赖,那么可以到maven网站下载jar包,放入lib中
如果连jar包到找不到,那么将github的仓库地址填入,比如我的bmob-sdk一直导入失败,那么:
maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }

浙公网安备 33010602011771号