我正在使用 Android Studio 0.8.9
最近,我正在将 Eclipse 项目迁移到 Android Studio 项目中。我从 File -> Import Project...
开始
我遇到了一个非常奇怪的问题,Android Studio 无法编译我的主项目,原因是 找不到符号 .这些符号假设可以在我的一个图书馆项目中找到:https://code.google.com/p/android-lockpattern/ (版本 3.0.1)
这是错误消息之一
C:\projects\xxx.java:4: error: cannot find symbol
import group.pals.android.lib.ui.lockpattern.prefs.DisplayPrefs;
这些是我奇怪的观察
我可以在构建 androidlockpattern 时确认没有错误
:androidlockpattern:compileLint
:androidlockpattern:copyReleaseLint UP-TO-DATE
:androidlockpattern:preBuild
:androidlockpattern:preReleaseBuild
:androidlockpattern:checkReleaseManifest
:androidlockpattern:preDebugBuild
:androidlockpattern:preDebugTestBuild
:androidlockpattern:prepareComActionbarsherlockActionbarsherlock440Library UP-TO-DATE
:androidlockpattern:prepareReleaseDependencies
:androidlockpattern:compileReleaseAidl UP-TO-DATE
:androidlockpattern:compileReleaseRenderscript UP-TO-DATE
:androidlockpattern:generateReleaseBuildConfig UP-TO-DATE
:androidlockpattern:generateReleaseAssets UP-TO-DATE
:androidlockpattern:mergeReleaseAssets UP-TO-DATE
:androidlockpattern:generateReleaseResValues UP-TO-DATE
:androidlockpattern:generateReleaseResources UP-TO-DATE
:androidlockpattern:mergeReleaseResources UP-TO-DATE
:androidlockpattern:processReleaseManifest UP-TO-DATE
:androidlockpattern:processReleaseResources UP-TO-DATE
:androidlockpattern:generateReleaseSources UP-TO-DATE
:androidlockpattern:compileReleaseJava UP-TO-DATE
:androidlockpattern:proguardRelease UP-TO-DATE
:androidlockpattern:mergeReleaseProguardFiles UP-TO-DATE
:androidlockpattern:compileReleaseNdk UP-TO-DATE
:androidlockpattern:packageReleaseJniLibs UP-TO-DATE
:androidlockpattern:packageReleaseRenderscript UP-TO-DATE
:androidlockpattern:packageReleaseResources UP-TO-DATE
:androidlockpattern:bundleRelease
我的主要项目确实包含 androidlockpattern 作为模块
dependencies {
compile project(':androidlockpattern')
...
Android Studio 编辑器可以识别 androidlockpattern。没有突出显示红线
我还有其他图书馆项目。它们都与我的主要项目一起编译得很好。到目前为止唯一的错误是androidlockpattern。
这是详细的错误消息
C:\projects\xxx.java:4: error: cannot find symbol
import group.pals.android.lib.ui.lockpattern.prefs.DisplayPrefs;
^
symbol: class DisplayPrefs
location: package group.pals.android.lib.ui.lockpattern.prefs
C:\projects\xxx.java:195: error: cannot find symbol
Intent intent = new Intent(LockPatternActivity.ACTION_COMPARE_PATTERN, null,
^
symbol: variable ACTION_COMPARE_PATTERN
location: class LockPatternActivity
C:\projects\xxx.java:198: error: cannot find symbol
DisplayPrefs.setMaxRetry(this, Integer.MAX_VALUE);
^
symbol: variable DisplayPrefs
location: class JStockFragmentActivity
C:\projects\xxx.java:199: error: cannot find symbol
intent.putExtra(LockPatternActivity.EXTRA_PATTERN, startupLockPattern);
^
symbol: variable EXTRA_PATTERN
location: class LockPatternActivity
C:\projects\xxx.java:1239: error: cannot find symbol
case LockPatternActivity.RESULT_FAILED:
对于
build.gradle
的 androidlockpattern
,它看起来像下面apply plugin: 'com.android.library'
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "group.pals.android.lib.ui.lockpattern"
minSdkVersion 10
targetSdkVersion 10
}
buildTypes {
release {
runProguard true
proguardFiles 'proguard.cfg'
}
}
}
dependencies {
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:19.1.0'
}
这是我的项目设置。对我来说似乎很好。
知道我可以采取哪些其他步骤来诊断根本原因吗?
最佳答案
根据 Android 文档:
The ProGuard tool shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names.
更改
runProguard true
至runProguard false
如果你想在你的项目上运行 Proguard,你应该改变
proguard.cfg
因此。此错误也可能适用于您:https://code.google.com/p/android/issues/detail?id=52962
关于Android Studio 找不到项目库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657939/