我有一个项目,我从Eclipse导入Android Studio。在Eclipse中,一切运行良好。
它包含一个主模块(Eclipse中的一个项目),它使用来自库模块的包(Eclipse中的库项目)。由于迁移进展不顺利,我手动创建了一个库模块,并将所有源代码复制到新创建的模块中。
问题是主模块似乎没有从库模块中找到包,当我重建项目时,我得到的错误就像"包bla bla不存在"。
这是主要模块gradle.build:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.pointer.mamagoose"
minSdkVersion 9
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile project(':linphoneclean')
compile 'com.android.support:support-v4:25.0.0'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.google.android.gms:play-services:9.4.0'
compile files('libs/firebase-client-android-2.5.0.jar')
compile files('libs/apache-httpcomponents-httpclient.jar')
compile files('libs/apache-httpcomponents-httpcore.jar')
compile files('libs/android-support-v7-recyclerview.jar')
}
linphoneclean是库模块。
整个项目的settings.gradle:
include ':linphoneclean'
include ':tigris'
这是库模块的build.gradle:
apply plugin: 'com.android.library'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
testCompile 'junit:junit:4.12'
compile 'com.google.code.gson:gson:2.6.2'
compile files('libs/commons-lang3-3.4.jar')
compile files('libs/linphone.jar')
compile files('libs/firebase-client-android-2.5.0.jar')
}
库模块的结构包括例如文件夹:
src / main / com / pointer / linphone(里面有所有减速度为package com.pointer.linphone
的java文件,但我仍然收到错误说>"包com.pointer.linphone不存在)。
我做错了什么?
答案 0 :(得分:0)
查看正确的源文件包含java文件夹和res文件夹,在java包中添加java文件,在res文件夹中添加res文件。在清单文件中添加活动名称,请参阅此处,在Gradle文件中添加必要的库文件。清理并重建项目Android工作室。
https://developer.android.com/guide/topics/manifest/manifest-element.html
答案 1 :(得分:0)
在与同一个问题争斗数小时后,这对我有用。
我创建了一个包含空白活动的新项目,添加了一个带有虚拟类的库模块,定义了依赖项。通过在应用程序中导入虚拟类来验证它是否有效。然后我从真实项目中复制了所有相关代码。
我的想法是它可能是IDE的iml文件的问题,因为从头开始并且复制了一些工作。
答案 2 :(得分:0)
也许您可以检查库的AndroidManifest是否正确定义了包,例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="com.pointer.linphone">