移动android studio 程序包到不同电脑后,出现Cannot resolve symbol AppCompatActivity等错误,网上有说没有包含lib包。
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
这几个都出现Cannot resolve symbol 错误,有的说要导入V4,V7包。但是我的build.gradle里和Project Structure>Dependencies>app>点击Declared Dependencies里都有包含这些包。
dependencies {
implementation fileTree(include: [’*.jar’], dir: ‘libs’)
implementation ‘com.android.support:appcompat-v7:26.0.0-beta1’
implementation ‘com.android.support:design:26.0.0-beta1’
implementation ‘com.android.support.constraint:constraint-layout:1.0.2’
implementation ‘com.android.support:support-vector-drawable:26.0.0-beta1’
testImplementation ‘junit:junit:4.12’
androidTestImplementation ‘com.android.support.test🏃1.0.0’
androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.0’
}
还有人说把删除项目目录下的.idea文件夹后再打开项目,这个方法有时候也可以,但是新生成的.idea还会出现其它新的问题。
那既然包括了这些lib,但但是在程序中import不了,这是为什么呢。进入.idea/libraries文件,与以前没有转移过,在本电脑下可用的程序对比,发现,以appcompat_v7_26_0_0_beta1.xml文件为例:
<component name="libraryTable">
- <library name="appcompat-v7-26.0.0-beta1">
- <CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.0-beta1.aar/0d0a4f7af324a302451cdfd37e5e0547/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.0-beta1.aar/0d0a4f7af324a302451cdfd37e5e0547/res" />
</CLASSES>
<JAVADOC />
- <SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/appcompat-v7/26.0.0-beta1/5a4cc7ec044d7eae1329c19157a30f518f89a38d/appcompat-v7-26.0.0-beta1-sources.jar!/" />
</SOURCES>
</library>
</component>
发现
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.0-beta1.aar/0d0a4f7af324a302451cdfd37e5e0547/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.0-beta1.aar/0d0a4f7af324a302451cdfd37e5e0547/res" />
这两行0d0a4f7af324a302451cdfd37e5e0547这个串不一样。于是把这个文件复制代替它后,import android.support.v7.app.AppCompatActivity;能够正确import。所以我的方法是***将.idea/libraries下对应的包xml替换为正确的xml。***
如果找不出哪个lib对应的是哪个xml,可以将xml全部换掉,当然,对比的这个正确程序包,里面也要同样是包含有出错程序包里不能import的lib,它才会有相应的xml替换。