首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中启动导入项目的活动

如何在Android中启动导入项目的活动
EN

Stack Overflow用户
提问于 2018-09-10 10:28:03
回答 2查看 123关注 0票数 0

我创建了一个android项目(项目A),并在其中导入了另一个项目(项目B):

->档案/新/导入模块。

现在,我想从A项目中调用位于B项目内的一个活动。

我用:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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'
}
EN

回答 2

Stack Overflow用户

发布于 2018-09-10 10:36:32

代码语言:javascript
复制
 <intent-filter>
      <action android:name="com.projectB.app.another.app.ANOTHER_ACTIVITY"/>
      <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>

当你创造意图的时候,试试吧。

代码语言:javascript
复制
Intent intent = new Intent("com.projectB.app.another.app.ANOTHER_ACTIVITY");
startActivity(intent);

希望这对你有用..。

票数 0
EN

Stack Overflow用户

发布于 2018-09-11 10:18:31

更改B项目的build.gradle如下:

代码语言:javascript
复制
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'
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52255794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档