【问题标题】:How to launch an activity of an imported project in Android Studio如何在 Android Studio 中启动导入项目的活动
【发布时间】: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


【解决方案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);

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

【讨论】:

    【解决方案2】:

    像这样更改 Project Bbuild.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'
    }
    

    【讨论】:

    • 我已经删除了我的答案,希望对你有帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    相关资源
    最近更新 更多