React native: невозможно изменить имя пакета - всегда происходит сбой - PullRequest
0 голосов
/ 11 января 2019

В данный момент я сталкиваюсь с проблемой, которую пытаюсь решить уже 3 дня. Я хочу переименовать название пакета для моего собственного приложения Android.

Итак, чтобы быть полностью уверенным, что я все делаю правильно, я создал новый проект и попытался переименовать имя пакета. Я сделал это, чтобы убедиться, что ошибка не исходит из моего проекта, и я еще не смог исправить свою ошибку.

Я инициализировал новый проект, как всегда: react-native init MyAwesomeProject.

Затем я заменил com.myawesomeproject в следующих файлах на com.awesome.project.

/ Android / приложение / БАК:

android_build_config(
...
package = 'com.awesome.project',
)
android_resource(
...
package = 'com.awesome.project',
)

Android / приложение / SRC / главная / AndroidManifest.xml

package="com.awesome.project"

Android / приложение / build.gradle

defaultConfig {
    applicationId "com.awesome.project"
    ...
}

Также я заменил package com.myawesomeproject; на package com.awesome.project; и переместил файл MainActivity.java и MainApplication.java из android/app/src/main/java/com/myawesomeproject/ на новый путь android/app/src/main/java/com/awesome/myawesomeproject/.

После того, как я сделал все эти изменения, я запустил ./gradlew clean в своей папке android и затем выполнил команду react-native run-android.

Однако я все еще сталкиваюсь с точно с той же проблемой, с которой я сталкиваюсь в моем реальном проекте.

> Task :app:compileDebugJavaWithJavac FAILED
/Users/max/Desktop/Max/MyAwesomeProject/android/app/src/main/java/com/myawesomeproject/MainApplication.java:19: error: cannot find symbol
      return BuildConfig.DEBUG;
             ^
  symbol: variable BuildConfig
1 error


FAILURE: Build failed with an exception. 

Кроме того, я уже пытался добавить следующий код в начало файла MainApplication.java:

import com.facebook.react.BuildConfig;

Но я добавил код к MainApplication.java, расположенному в android/app/src/main/java/com/myawesomeproject, как это говорится в выводе ошибки. Если вы это сделаете, консоль не выдаст ошибку после запуска react-native run-android, однако приложение myawesomeproject будет установлено, и если вы попытаетесь открыть его, приложение вылетит.

Это ясно показывает, что реакция все еще использует неправильный путь!

Я даже попробовал пакет переименования npm и запустил следующую команду:

react-native-rename "project" -b com.project.

Даже это не решает мою проблему. Я все еще получаю точно ту же ошибку при запуске react-native run-android.

Вы, ребята, видите, что проблема не в моем проекте, потому что у меня точно такая же проблема после того, как я создал новый проект, который полностью построен с нуля!

Буду признателен за любую помощь! Спасибо, ребята.

1 Ответ

0 голосов
/ 11 января 2019

При переименовании необходимо внести изменения в несколько файлов. Так что это может быть сложно. Использование react-native rename делает это очень просто.

Использование response-native-rename

Я только что попытался настроить начальный проект, используя: react-native init MyAwesomeProject

Тогда я побежал: npm install react-native-rename -g

Затем, чтобы изменить название проекта, я запустил cd MyAwesomeProject, а затем

react-native-rename "project" -b com.awesome.project

Затем запустив react-native run-android, он собирается без ошибок.

Android вручную

Если вы планируете внести изменения вручную, тогда есть много файлов для изменения. На самом деле может быть больше в зависимости от того, что вы добавили в свой проект Это руководство по изменению ванильного проекта.

В корне приложения

В app.json измените name и displayName на "project"

В package.json измените name на "name": "project",

андроид / settings.gradle

Измените rootProject.name на нужное имя: rootProject.name = 'project'

Android / приложение / build.gradle

В конфигурации по умолчанию измените applicationId на нужный вам идентификатор приложения, в данном случае: applicationId com.awesome.project

Android / приложение / БАК

Измените пакет в android_build_config и android_resources на нужный пакет, в этом случае: package = "com.awesome.project",

Android / приложение / SRC / главная / AndroidManifest.xml

Измените пакет на нужное имя пакета, в этом случае: package="com.awesome.project"

Android / приложение / SRC / основные / Рез / значения / strings.xml

Измените имя приложения на нужное имя приложения, в данном случае <string name="app_name">project</string>

Обновление * .java файлов

Этот бит сложен, так как вам нужно создавать папки, перемещать файлы, а затем переименовывать части внутренних частей файлов.

Android / приложение / SRC / главная / Java / COM /

Создайте папку с именем awesome и внутри этой папки создайте папку с именем project

Скопируйте MainActivty.java и MainApplication.java из android/app/src/main/java/com/myawesomeproject в недавно созданную папку android/app/src/main/java/com/awesome/project.

Внутри как MainActivity.java, так и MainApplication.java восстанавливают пакет вверху файлов с package com.myawesomeproject; до package com.awesome.project;

Также в MainActivity.java переименуйте строку, возвращаемую функцией getComponentName(), в "project"

Вручную iOS

Это немного сложнее сделать вручную, однако просто изменить идентификатор пакета и имя приложения внутри XCode. Я не собираюсь проходить процедуру XCode, как вы только что спросили специально для Android.

...