我使用react-native init MyApp
初始化新的React Native應用程序。 這創建了包含com.myapp
包的Android項目。在React Native中更改Android的包名稱
什麼是最好的方式來改變這個軟件包的名稱,例如:com.mycompany.myapp
?
我試着改變它在AndroidManifest.xml
但它創造了其他錯誤,所以我假設它不是這樣。
有什麼想法?
我使用react-native init MyApp
初始化新的React Native應用程序。 這創建了包含com.myapp
包的Android項目。在React Native中更改Android的包名稱
什麼是最好的方式來改變這個軟件包的名稱,例如:com.mycompany.myapp
?
我試着改變它在AndroidManifest.xml
但它創造了其他錯誤,所以我假設它不是這樣。
有什麼想法?
我從發生改變的項目」子文件夾名稱: 「的Android /應用/ src目錄/主/ JAVA/MY/APP/OLD_ID/」 到:「的Android /應用/ src目錄/主/ JAVA/MY/APP/NEW_ID/「
然後手動切換新舊包IDS:
在: 機器人/應用/ SRC /主/爪哇/ MY/APP/NEW_ID/MainActivity。 java:
package MY.APP.NEW_ID;
在機器人/應用/ SRC /主/爪哇/ MY/APP/NEW_ID/MainApplication.java:
package MY.APP.NEW_ID;
在機器人/應用/ SRC /主/ AndroidManifest.xml中 :
package="MY.APP.NEW_ID"
(可選)在機器人/應用/ BUCK:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
而且在的Android /應用/的build.gradle:
applicationId "MY.APP.NEW_ID"
搖籃」到底清洗(在/安卓文件夾):
./gradlew clean
轉到文件android/app/src/main/AndroidManifest。XML -
更新:
ATTR 安卓元素應用的標籤爲:
原值 - 機器人:標籤= 「@字符串/ APP_NAME」
新值 - android:label =「(要放的字符串)」
和
ATTR 安卓元素活動的標籤爲:
原值 - 機器人:標籤= 「@字符串/ APP_NAME」
新值 - android:label =「(你想要放的字符串)」
爲我工作,希望它會有所幫助。
我真的不認爲這個答案應該像過去一樣被低估。但是,這個答案_does_ **不是**地址在問題中提出的問題 - 如何更改包名**。但是,它回答了「如何更改啓動器中顯示的應用程序的標題」這一問題。這是相關的答案嗎?不是真的。它是否包含有用的信息?是。因此,我建議你找到一個問題,詢問有關啓動器的標題,併發布你的解決方案_there_而不是在這裏。 –
我有一個解決方案基於@切爾尼夫的答案(適用於macOS對我來說)。兩個區別:我在java文件夾中有一個Main2Activity.java,我做同樣的事情,並且我不打擾調用./gradlew clean,因爲它好像是react-native packager自動執行的那樣。
不管怎麼說,我的解決方案並沒有做切爾諾夫的工作,除了我爲它製作了一個bash shell腳本,因爲我使用一組代碼構建了多個應用程序,並希望能夠在我運行我的npm時輕鬆地更改包名腳本。
這是我使用的bash腳本。你需要修改你想使用的packageName,並添加你想要的任何東西......但這裏有一些基礎知識。您可以創建一個sh文件,給予許可,然後再從您從反應本地同一文件夾中運行它:
rm -rf ./android/app/src/main/java
mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
packageName="com.MyWebsite.MyAppName"
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
sed -i '' -e "s/.*package=\".*/ package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
sed -i '' -e "s/.*package = '.*/ package = '"$packageName"',/" ./android/app/BUCK
sed -i '' -e "s/.*applicationId.*/ applicationId \""$packageName"\"/" ./android/app/build.gradle
cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName
免責聲明:您需要編輯附近的底部MainApplication.java的評論首先是java文件。它在評論中有'包'這個詞。由於腳本的工作原理,它會在其中包含「包」一詞並替換它。正因爲如此,這個腳本可能不會被未來證明,因爲可能有其他地方使用的同一個詞。
第二個免責聲明:前3個sed命令從名爲javaFiles的目錄編輯java文件。我自己創建了這個目錄,因爲我想要從那裏複製一組java文件(因爲我將來可能會添加新的軟件包)。你可能會想要做同樣的事情。因此,從java文件夾中複製所有文件(通過它的子文件夾查找實際的java文件)並將它們放在一個名爲javaFiles的新文件夾中。
第三免責聲明:您需要編輯packageName變量,使其與腳本頂部的路徑和底部(com.MyWebsite。MyAppName to com/MyWebsite/MyAppName)
我使用react-native-rename npm包。
使用
npm install react-native-rename -g
然後從根部安裝你的陣營本地項目執行以下
react-native-rename "MyApp" -b com.mycompany.myapp
這是一個簡單而棘手的問題,我只需要手動更新MainApplication.java。 –
使用這種方法,它像一個魅力工作.. – FaISalBLiNK
簡單,只是工程。 – BlaShadow
如果您使用的是Android工作室 -
改變com.myapp
到com.mycompany.myapp
創建採用Android工作室GUI
Android的工作室將負責把適當的包裝下android/app/src/main/java
複製從com.myapp
所有類新包層次com.mycompany.myapp到com.mycompany.myapp
所有複製類的名稱。如果您有一些自定義模塊並且不想在所有.java文件中手動替換,這很有用。
更新android/app/src/main/AndroidManifest.xml
和(更換com.myapp
到com.mycompany.myapp
同步項目(gradle這個版本)
軟件包名稱左鍵點擊並去重構 - >重命名選項來命名包名。 – kunal
現在最適合我的是找到並替換 – mllm
你也可以試試https://saumya.github.io/ray/articles/72/ – Andy