【发布时间】:2019-02-14 18:29:17
【问题描述】:
我创建了一个 android 项目(项目 A)并在其中导入了另一个项目(项目 B):
->文件/新建/导入模块..
现在我想从项目 A 调用位于项目 B 内的活动。
我用过:
Intent myIntent = new Intent(this,Class.forName("com.projectB.app.MainActivity"));
startActivity(myIntent);
但我明白了
ClassNotFoundException
如何解决?
更新
我发现我需要使用以下方法将项目 B 作为依赖项添加到项目 A:
项目结构/依赖关系/+
当我尝试构建时出现此错误:
错误:无法确定任务的依赖关系 ':app:compileDebugJavaWithJavac'.
无法解析配置 ':app:debugCompileClasspath' 的所有任务依赖项。 无法解析项目:3dviewerobj。 要求: 项目:应用程序 找不到项目的匹配配置:3dviewerobj: - 配置'debugApiElements': - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 兼容值“调试”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“Apk”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'debug' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 并找到兼容值 'java-api'。 - 配置“调试元数据元素”: - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 兼容值“调试”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“元数据”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'debug' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 但未提供值。 - 配置“调试运行时间元素”: - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 兼容值“调试”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“Apk”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'debug' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 并发现不兼容的值 'java-runtime'。 - 配置“releaseApiElements”: - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 不兼容的值“释放”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“Apk”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'release' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 并找到兼容值 'java-api'。 - 配置“releaseMetadataElements”: - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 不兼容的值“释放”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“元数据”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'release' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 但未提供值。 - 配置“releaseRuntimeElements”: - 需要 com.android.build.api.attributes.BuildTypeAttr 'debug' 并找到 不兼容的值“释放”。 - 需要 com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' 和 发现不兼容的值“Apk”。 - 找到 com.android.build.gradle.internal.dependency.VariantAttr 'release' 但是 不是必需的。 - 需要 org.gradle.api.attributes.Usage 'java-api' 并发现不兼容的值 'java-runtime'。
项目 A 的 build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.app.ar.augmented"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation project(':3dviewerobj')
}
项目 B 的 build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "org.andresoviedo.dddmodel2"
minSdkVersion 8
targetSdkVersion 27
}
signingConfigs {
release {
storeFile file("android-3d-model-viewer.jks")
storePassword ""
keyAlias "android-3d-model-viewer"
keyPassword ""
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
}
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
}
dependencies {
implementation 'com.android.support:support-compat:27.1.1'
}
【问题讨论】:
-
项目 B 不在项目 A 中,只有在您希望它在 Project Acticity 中为您做某事时才导入它,这样的意图可能行不通。只需寻找可以启动另一个应用程序的东西
-
发布你的两个模块'build.gradle'
-
@MilaDroid 我更新了答案,看看吧
标签: android