Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'android:name' in <activity> tag must be a valid Java class name in React Native

I have just created an react-native app and building the React Native application giving me The error below.

H:\App Data\ejob-app\android\app\build\intermediates\manifests\full\debug\AndroidManifest.xml:2: AAPT: error: attribute 'package' in <manifest> tag is not a valid Android package name: 'com.ejob-app'.

H:\App Data\ejob-app\android\app\build\intermediates\manifests\full\debug\AndroidManifest.xml:17: AAPT: error: attribute 'android:name' in <application> tag must be a valid Java class name.

H:\App Data\ejob-app\android\app\build\intermediates\manifests\full\debug\AndroidManifest.xml:24: AAPT: error: attribute 'android:name' in <activity> tag must be a valid Java class name.

And Ended up with the error below..

FAILURE: Build failed with an exception.

* Where:
Build file 'H:\App Data\ejob-app\android\app\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Plugin with id 'com.ejob.app' not found.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --        
debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and 
have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

Here is my AndroidManifest.xml to check the required configuration.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ejob-app"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="26" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
    android:name="com.ejob-app.MainApplication"
    android:allowBackup="false"
    android:debuggable="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.ejob-app.MainActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

Please guide me on this, please tell me if i missing something. i am very new to react-native.

like image 740
Dishant Chanchad Avatar asked Jan 11 '19 11:01

Dishant Chanchad


2 Answers

Package name should not contain dashes. Rename your package from

'com.ejob-app'

to

'com.ejob_app'

You can follow this question

like image 176
Kacper Kogut Avatar answered Sep 17 '22 15:09

Kacper Kogut


I had the same problem and in my case, the problem was that when I created flutter project, I gave the org name as in.mycompany (observe, "in"). Now, it seems "in" is a keyword in Dart and so, Android Studio uses `in` in the files that it generates. However, that make Gradle unhappy, and causes it to generate message saying name must be a valid Java package name. Quite a conundrum :)

The solution is to search for this string `in`.mycompany in the whole project and change it to in.mycompany in build.gradle and AndroidManifest.xml files (there are several of such files, so just search). But leave it as `in` in the kotlin file MainActivity.kt

That fixed it for me.

like image 41
Priyshrm Avatar answered Sep 16 '22 15:09

Priyshrm