我创建了一个android项目(项目A),并在其中导入了另一个项目(项目B):
->档案/新/导入模块。
现在,我想从A项目中调用位于B项目内的一个活动。
我用:
Intent myIntent = new Intent(this,Class.forName("com.projectB.app.MainActivity"));
startActivity(myIntent);但我得到
ClassNotFoundException
如何解决这个问题?
更新
我发现需要将项目B作为依赖项添加到项目A中,方法是:
项目结构/依赖/+
当我试图构建时,我会得到以下错误:
错误:无法确定任务的依赖关系':app:compileDebugJavaWithJavac‘。 无法解决配置的所有任务依赖关系“:app:调试器”。无法解决项目:3 3dviewerobj。Required by: project :app无法找到项目的匹配配置:3 3dviewerobj:- configuration‘调试器’:-必需的com.android.build.api.attributes.BuildTypeAttr‘调试’,并找到兼容的值'debug‘。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不相容的值'Apk’。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘调试’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’并找到兼容的值‘java’。-配置“调试器元元素”:-必需的com.android.build.api.attributes.BuildTypeAttr“调试”,并找到兼容的值“debug”。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不兼容的值’元数据‘。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘调试’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’,但没有提供任何值。-配置“调试器运行时元素”:-必需的com.android.build.api.attributes.BuildTypeAttr“调试”,并找到兼容的值“调试”。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不相容的值'Apk’。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘调试’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’和发现不兼容的值‘java-运行时’。-配置'releaseApiElements':-必需的com.android.build.api.attributes.BuildTypeAttr‘调试’,并发现不兼容的值'release‘。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不相容的值'Apk’。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘释放’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’并找到兼容的值‘java’。-配置'releaseMetadataElements':-必需的com.android.build.api.attributes.BuildTypeAttr‘调试’和发现不兼容的值'release‘。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不兼容的值’元数据‘。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘释放’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’,但没有提供任何值。-配置'releaseRuntimeElements':-必需的com.android.build.api.attributes.BuildTypeAttr‘调试’,并发现不兼容的值'release‘。-必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar‘和发现不相容的值'Apk’。-找到了com.android.build.gradle.internal.dependency.VariantAttr‘释放’,但不是必需的。-必需的org.gradle.api.attributes.Usage‘java’和发现不兼容的值‘java-运行时’。
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'
}发布于 2018-09-10 10:36:32
<intent-filter>
<action android:name="com.projectB.app.another.app.ANOTHER_ACTIVITY"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>当你创造意图的时候,试试吧。
Intent intent = new Intent("com.projectB.app.another.app.ANOTHER_ACTIVITY");
startActivity(intent);希望这对你有用..。
发布于 2018-09-11 10:18:31
更改B项目的build.gradle如下:
apply plugin: 'com.android.library'
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'
}https://stackoverflow.com/questions/52255794
复制相似问题