- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
由于 Android Studio 将成为 Android 开发的默认 IDE,我决定将我现有的项目迁移到 Android-studio。项目结构似乎有所不同,我的项目中的文件夹层次结构如下:
Complete Project
->.idea
-> build
-> Facebook SDK
-> MainProject
-> ... (Other Libraries)
build.gradle
local.properties
settings.gradle
...
External Libraries
-> Android API 8 Platform
-> Android API 18 Platform
-> Android API 19 Platform
-> 1.7 Java
-> support-v4-19.1.0
我的 MainProject 有一个 libs 文件夹,其中包含项目中使用的不同 jar。令人惊讶的是,它不包含我的 eclipse 项目中存在的 android-support-v4 jar。因此,似乎根目录下的外部库文件夹必须处理它。
但是在导入之后,当我尝试编译项目时,开始为某些与 android 支持库相关的类抛出“找不到符号错误”。
例如:Android Studio 中的自动完成为我提供了来自 android.support.v4.app.NotificationCompat 的 NotificaitonCompat 建议,但是当我尝试编译我的项目模块时,它说
错误:(17, 30) 错误:找不到符号类 NotificationCompat 错误:任务 ':app:compileDebugJava' 执行失败。> 编译失败;有关详细信息,请参阅编译器错误输出。
对于同一支持库,许多其他类也会发生这种情况。我尝试插入一个 jar 并在 MainProject 的 build.gradle 中进行相同的更改,但错误仍然存在。
我什至尝试重新启动并再次构建项目,但没有任何改变。
编辑:我在 MainProject 中附加了 Gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "package.app"
minSdkVersion 8
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
dependencies {
compile project(':facebookSDK')
compile project(':library')
compile project(':volley')
compile 'com.google.android.gms:play-services:+'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:19.1.0'
compile files('libs/FlurryAnalytics_3.3.3.jar')
compile files('libs/universal-image-loader-1.8.4.jar')
....
}
最佳答案
构建文件的这一部分:
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
告诉构建系统忽略 support-v4,这就是它不编译的原因。删除它。
在你的构建文件中,你有这个,这是包含支持的正确方法:
compile 'com.android.support:support-v4:19.1.0'
如果您在任何模块的 libs 目录中有支持库 jar 文件,请将其删除并确保以这种方式引用它——如果您将库作为 jar,您可能会遇到多次包含 jar 的问题,这将导致 dex 错误。
关于java - Android Studio 在编译时未检测到支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835170/
在我们的数据库表上,我们使用两个唯一的非聚集索引来创建跨四个字段的唯一约束。我们使用两个,因为其中一个字段 ZipCode 是一个可为空的字段。如果表中存在一条包含 ZipCode 的 null 条目
我刚刚开始学习 Rails 3 教程,以便对框架有一点熟悉,但我在生成 schema.rb 时遇到了问题。我的操作系统是 Windows 7 x64、Ruby 1.9.2、MySQL2 gem 0.2
我是一名优秀的程序员,十分优秀!