当前位置: 首页 > 知识库问答 >
问题:

活动类{rcm.samapp/com.comp.android.ui….}不存在

太叔灿
2023-03-14

我正在尝试整合react原生和原生android应用程序。

apps build.gradle 中的 applicationId is rcm.samapp

manifest标签中的包是com.comp.android

SplashActivity.kt 中的第 1 行是 package com.comp.android.ui

活动清单如下所示:

 <activity
      android:name=".ui.SplashActivity"
      android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
 </activity>

跟随RN官方文档后,当我尝试通过< code > react-native run-Android-appId RCM . samapp-main-activity ui运行时。SplashActivity命令,它会引发以下错误:

Starting: Intent { cmp=rcm.samapp/com.comp.android.ui.SplashActivity }
Error type 3
Error: Activity class {rcm.samapp/com.comp.android.ui.SplashActivity} does not exist.

原因和解决方法是什么?

build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply from: 'appcenter.gradle'
apply from: 'version.gradle'
apply plugin: 'jacoco'
apply plugin: 'org.owasp.dependencycheck'
apply from: 'checkstyle.gradle'

project.afterEvaluate {
    preBuild.dependsOn 'checkstyle'
}
repositories {
    flatDir {
        dirs 'libs'
    }
}

project.ext.react = [
        entryFile: "index.js",
        enableHermes: false,  // clean and rebuild if changing
]
def jscFlavor = 'org.webkit:android-jsc:+'
def enableHermes = project.ext.react.get("enableHermes", false);

dependencyCheck {
    scanConfigurations += 'releaseCompileClasspath'
}

android {

    compileSdkVersion 29
    def versionNameValue = System.getProperty("suppliedVersionName", "1.0.0")
    def versionCodeValue = System.getProperty("suppliedVersionCode", calculatedVersionCode)

    packagingOptions {
        pickFirst '**/*.so'
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }

    lintOptions {
        abortOnError false
        disable 'MissingTranslation'
    }

    defaultConfig {
        applicationId "rcm.samapp"
        minSdkVersion 21
        targetSdkVersion 28
        versionName versionNameValue
        versionCode (versionCodeValue.toInteger() + 10000)
        vectorDrawables.useSupportLibrary = true

        multiDexEnabled true

        def backend = backend()

        resValue 'bool', 'debugMenu', 'false'
    }

    dataBinding {
        enabled = true
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    compileOptions {
        targetCompatibility JavaVersion.VERSION_1_8
        sourceCompatibility JavaVersion.VERSION_1_8
    }


    packagingOptions {
        exclude 'lib/mips64/**'
        exclude 'lib/mips/**'
        exclude 'lib/armeabi/**'
    }

    buildTypes {
        android.applicationVariants.all { variant ->
            variant.getAssembleProvider().configure() {
                it.doFirst {
                   
           ...
                }

                it.doLast {
                    ...
                }
            }
        }

 
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable true
            testCoverageEnabled true
            applicationIdSuffix ".debug.dev"
            versionNameSuffix ".debug.$currentBranchName"
            signingConfig signingConfigs.debug
            buildConfigField 'boolean', 'SHOW_DEBUG_MENU', 'true'
        }

        development.initWith(release)
        development {
            debuggable true
            applicationIdSuffix '.debug'
            versionNameSuffix ".development.$currentBranchName"
            signingConfig signingConfigs.debug

            buildConfigField 'boolean', 'SHOW_DEBUG_MENU', 'true'
            resValues.remove 'debugMenu'
            resValue 'bool', 'debugMenu', 'true'

        }
    }

    sourceSets {
        debug.java.srcDirs        += 'src/environments_debug/java'
        development.java.srcDirs  += 'src/environments_debug/java'
     
        release.java.srcDirs      += 'src/environments_release/java'
        debug {
            jniLibs.srcDir 'src/jniLibsDebug'
        }
        development {
            jniLibs.srcDir 'src/jniLibsRelease'
        }
        release {
            jniLibs.srcDir 'src/jniLibsRelease'
        }
    }

    testOptions {
        animationsDisabled = true
        animationsDisabled true

        unitTests {
            includeAndroidResources = true
        }
    }
}

def backend() {
    return project.getProperties().get("backend")
}

ext {
      lifeCycle = '2.2.0'
    dagger = '2.27'
    retrofit = '2.4.0'
    room = '2.2.5'
    glide = '4.11.0'
    espresso = '3.2.0'
    databinding = '4.0.0'
    appCenterSdkVersion = '3.2.1'
}

dependencyCheck {
    // Only check for vulnerabilities in the dependencies of the production release
    scanConfigurations += 'releaseCompileClasspath'
}

jacoco {
    toolVersion = "$jacocoVersion"
}

tasks.withType(Test) {
    jacoco.includeNoLocationClasses = true
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
}

dependencies {
    releaseImplementation files('libs/libidpmobile.jar')
    developmentImplementation files('libs/libidpmobile.jar')
    debugImplementation files('libs/libidpmobile-debug.jar')

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermesvm/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

    implementation 'com.android.support:appcompat-v7:27.1.1'


    ...implementations

 
    testImplementation 'junit:junit:4.13'

}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle");
applyNativeModulesAppBuildGradle(project)
// THIS NEEDS TO BE IN THE BOTTOM
apply plugin: 'com.google.gms.google-services'

共有1个答案

姜运珧
2023-03-14

您有一些带有 applicationId后缀的自定义构建变体,它们正在更改包名称。您也应该在run-android命令中设置它们。

据我了解,您需要运行开发变体。所以设置--变体开发开发变体中的applicationId后缀.debug。将其指定为 --appId后缀调试

开发变体的完整命令是:react-native run-android --appId rcm.samapp --main-activity ui。SplashActivity --variant development --appId后缀调试

 类似资料:
  • 我在设备上卸载了应用程序。然后,当我尝试在Android Studio中运行该应用程序时,它返回以下信息: 启动活动时出错我一直在尝试将应用程序重新安装到设备上,但我不知道如何强制Android Studio将项目重新安装回设备上。Android Studio版本:北极之狐2020.3.1补丁2

  • 我最近升级到Android Studio1.5,现在我试图运行或调试的每个项目都显示,活动类不存在。下面列出了我尝试过但失败的解决方案。 清洁构建 重命名活动类 重新启动IDE 升级到Android Studio 2.0预览版 安装新的生成工具

  • 我得到的信息是:缺少package语句。这是红色的: 这是一个简单的项目, 从自动完成文本视图中选择联系人 下面是我的代码: ContactWithAuto.java: 清单:

  • 我不知道这是什么错误: 05/19 15:21:12:在LGE(我的手机)上启动“应用程序”。

  • 应用程序根本没有启动,显示错误,就像活动不存在一样(即使我有)。 执行时出错:am start-n“com.tectibet.loginapp/com.tectibet.loginapp.MainActivity”-a Android.Intent.Action.Main-c Android.Intent.Category.Launcher启动:Intent{act=Android.Intent.

  • 我有一个具有两个活动的Android应用程序 - 和。 当用户第一次打开应用程序时,它应该将他们带到,然后,他们应该登录并转到具有注销按钮的。 如果他们按下“注销”按钮,它应该再次返回到。如果他们按下后退按钮,它应该退出应用程序。当他们按下应用程序图标时,它应该直接将他们带到。 我对如何保存活动并在按下应用程序图标时返回该特定活动感到困惑。