如何从另一个模块调用活动



我想从MessageActivity中的Chat模块调用一个活动(ChatActivity(,它是另一个模块(卖家(的一部分。但当我添加对卖家模块的依赖时,如下所示:

implementation project(path: ':chat')

我收到这个错误

':seller@debugAndroidTest/compileClasspath":无法解析项目:app
显示详细信息
受影响的模块:卖家

这是我的build.gradle(模块:卖家(文件

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.seller"
minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.ncapdevi:frag-nav:1.0.3'
implementation 'com.roughike:bottom-bar:1.3.9'
implementation('com.mikepenz:materialdrawer:5.3.1@aar') {
transitive = true
}
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.navigation:navigation-fragment:2.2.1'
implementation 'androidx.navigation:navigation-ui:2.2.1'
implementation "androidx.recyclerview:recyclerview:1.1.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation 'androidx.navigation:navigation-ui:2.2.1'
implementation 'com.shobhitpuri.custombuttons:google-signin:1.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation 'com.google.firebase:firebase-messaging:20.1.3'
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.google.firebase:firebase-firestore:21.4.1'
implementation 'com.google.firebase:firebase-core:17.2.3'
api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.firebase:firebase-auth:19.3.0'
implementation 'com.google.firebase:firebase-database:19.2.1'
implementation 'com.google.firebase:firebase-storage:19.1.1'
implementation project(path: ':app')
}

这是我的项目设置。gradle

rootProject.name='commercetest'
include ':app', ':seller'

这是我的MessageActivity文件:

package com.example.seller;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
public class MessageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(MessageActivity.this, ChatActivity.class);
MessageActivity.this.startActivity(intent);
}
}

为什么它一直在发送错误。有链接吗,在哪里可以找到信息?

聊天模块应该是android Library

  1. 更换

    apply plugin: 'com.android.application'
    

    带有

    apply plugin: 'com.android.library'
    
  2. 从模块的构建中删除applicationId "com.example.chat"。升级

  3. 此外,您应该将ChatActivity添加到清单中,例如:

    <activity android:name=".ChatActivity">
    <intent-filter>
    <action android:name="com.example.seller.MessageActivity" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity>
    

这应该有效。

Intent intent = new Intent(MessageActivity.this, ChatActivity.class);
startActivity(intent);

用于将项目导入为模块/库。

更换

apply plugin: 'com.android.application'

带有

apply plugin: 'com.android.library'

此外,从库/模块的build.gradle 中删除applicationId

参考检查插件&applicationId

最新更新