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

问题描述 投票:0回答:2

我创建了一个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'
}
android
2个回答
0
投票
 <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);

我希望它对你有用......


0
投票

更改项目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'
}
© www.soinside.com 2019 - 2024. All rights reserved.