我创建了一个android项目(项目A),在其中我导入了另一个项目(项目B):
- >文件/新建/导入模块..
现在我想从项目A调用位于项目B内的活动。
我用了:
Intent myIntent = new Intent(this,Class.forName("com.projectB.app.MainActivity"));
startActivity(myIntent);
但我明白了
ClassNotFoundException的
怎么解决这个?
UPDATE
我发现我需要使用以下命令将Project B添加为Project A的依赖项:
项目结构/依赖性/ +
当我尝试构建时,我收到此错误:
错误:无法确定任务':app:compileDebugJavaWithJavac'的依赖关系。
无法解析配置':app:debugCompileClasspath'的所有任务依赖项。无法解决项目:3dviewerobj。要求:project:app无法找到匹配的项目配置:3dviewerobj: - Configuration'debugApiElements': - 必需的com.android.build.api.attributes.BuildTypeAttr'debug',找到兼容的值'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'。 - 配置'debugMetadataElements': - 必需的com.android.build.api.attributes.BuildTypeAttr'debug',找到兼容的值'debug'。 - 必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr'Aar'并发现不兼容的值'元数据'。 - 找到com.android.build.gradle.internal.dependency.VariantAttr'debug'但不是必需的。 - 必需的org.gradle.api.attributes.Usage'java-api'但没有提供任何值。 - 配置'debugRuntimeElements': - 必需的com.android.build.api.attributes.BuildTypeAttr'debug',找到兼容的值'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',发现不兼容的值'release'。 - 必需的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',发现不兼容的值'release'。 - 必需的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',发现不兼容的值'release'。 - 必需的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'
}
<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);
我希望它对你有用......
更改项目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'
}