Android Studioで既存のプロジェクトを新しい名前でコピーする


100

Androidプロジェクトをコピーして、同じファイルから別の名前で新しいプロジェクトを作成したいと思います。これの目的は、アプリストアで広告サポートされるアプリの2番目のバージョンを入手できるようにすることです。

私はこの答えをここで見つけました:

Android-既存のプロジェクトを新しい名前でコピーする

しかし、それはEclipse用です。Android Studioでこれを行うにはどうすればよいですか?

回答:


66

指定したリンクの手順は、Android Studioでも機能するはずです。モジュールフォルダー全体のコピーを(ファイルマネージャーを使用して)作成し、新しい名前を付けます。それを開いてRefactor -> Rename、モジュールとパッケージの名前を変更する(名前を変更する項目を右クリック)します。

参照してください。これを IntelliJの/ Androidのメーカーにリファクタリングの詳細については。


Windows 10は、ファイルパスが長すぎると言います。アニバーサリーアップデートを入手し、長いファイルパスを有効にするためにグループポリシーエディターのトリックを実行しました。Explorerはまだ長いファイルパスをまだ処理できないようです。参照:superuser.com/questions/1114181/...
アンドリュー・S

3
私はこれを試しましたが、プロジェクトを実行すると、Android Studioがデバイス上の古いアプリを上書きしています。デバイスに両方のアプリを同時にインストールしたい(Chromeカスタムタブのテスト用)。Android Studioで両方のアプリを同時にデバイスに強制するにはどうすればよいですか?
Locksleyu

ベースパッケージフォルダーを選択して、[リファクタリング]-> [名前の変更]をクリックしました。「パッケージの名前変更」オプションでエラーが発生し、「フォルダーの名前変更」オプションを実行しました。
Ismail Yavuz

また、de imlファイルをリファクタリングして名前を変更する必要があります!!!、そうしないと機能しません
JoeCoolman

43

Gradleを使用する場合-app / build.gradleファイルのapplicationId属性を変更することを忘れないでください。


3
build.gradleファイルのapplicationIdを変更するのを忘れて、Playストアで間違ったパッケージ名でアプリを公開してしまうので、これは非常に重要です
wenjiun

これは実際の回答というよりはコメントです。
不明な開発

それが鍵でした!
デニス

39

以下のようfree3domが指摘し、ここで行われるべきものです。

  1. ファイルマネージャを使用してコピーを作成する
  2. アプリのbuild.gradleファイルを手動で編集してパッケージ名を変更します(ファイルマネージャーを使用できます)。
  3. 手動で編集AndroidManifest.xmlしてパッケージ名を変更します。
  4. を実行しますgradle sync
  5. Android Studioでプロジェクトを開き、パッケージ名をリファクタリングします。
  6. もう一度gradle syncを実行します。

問題なく動作しているようです。


9
Androidスタジオの外で
Gradle

1
これに従いましたが、ステップ#4を実行せず、Android Studioを開いて、コピーしたプロジェクトをインポートしました。また、新しいプロジェクトが作成されたため、コピーしたプロジェクトから.imlファイルを削除しました。うまくいきました!ありがとう!
nommer 2015

@nommerどっちが.iml話してるの?? でproject/prjectname.imlと他でを見つけることができますが、どれをproject/app/app.iml削除する必要がありますか?
Hirdesh Vishwdewa

@Veeruは5番目のステップを説明できますか?
Hirdesh Vishwdewa

@HirdeshVishwdewaいい質問です!少し前に覚えていませんが、project / *。imlだと思います
nommer

31

Android Studioの最新バージョンを使用している場合は、Android Studioでこれを支援できます。

注:私はこれをAndroid Studio 3.0でのみテストしました。

手順は次のとおりです。

  1. プロジェクトビュー(画面左側のキャプチャと構造とともに表示されます)で、AndroidではなくProjectを選択します。 プロジェクトの名前がツリーの一番上になります(外部ライブラリと共に)。 プロジェクトを選択して、に移動します。 Android Studioから、新しい名前とプロジェクトのコピー先を尋ねられます。同じを提供します。

    Refactor -> Copy...

  2. コピーが完了したら、Android Studioで新しいプロジェクトを開きます。
    パッケージは以前のプロジェクト名のままです。
    これは、Javaクラスパッケージ、アプリケーションID、および古いパッケージ名を使用して生成されたその他すべてです。
    それを変える必要があります。
    プロジェクトビューでAndroidを選択します。javaサブディレクトリを
    開き、メインパッケージを選択します。 次に、それを右クリックして、次に進みます。 Android Studioでは、リファクタリングしようとしているパッケージに複数のディレクトリが対応しているという警告が表示されます。 をクリックしてください。 この手順の後、プロジェクトは完全に新しい名前で作成されます。
    RefactorRename

    Rename package Rename directory

  3. res / values / strings.xmlファイルを開き、プロジェクトの名前を変更します。
  4. 「Gradle Build Module:app」でアプリケーションIDを変更することを忘れないでください。
  5. 最後のステップは、プロジェクトをクリーンアップして再ビルドすることです。そうしないと、プロジェクトを実行しようとすると、Android StudioからAPKをインストールできないことが通知されます(前のプロジェクトを実行した場合)。
    だから、Build -> Clean projectそれからBuild -> Rebuild project
    これで、新しいクローンプロジェクトを実行できます。

ステップ4は、私が思うにフォルダーをコピーした後に、デプロイが失敗し、コピーされたプロジェクトを取得するために必要なものです
Jim Factor

2
重要:Google Playサービスを使用している場合。また、google-services.jsonファイルのパッケージ名を必ず更新してください。
Gihan Gamage

この回答をありがとう!1つの追加:settings.gradleのrootProject.nameも更新しました。
alexx

16

これの目的は、アプリストアで広告サポートされるアプリの2番目のバージョンを入手できるようにすることです。

現在これを行うための最良の方法は、プロジェクトをコピーしないことです。ファイルで
異なるフレーバーを使用してそれを行うことができbuild.gradleます。

 productFlavors {
        flavor1 {
            applicationId = "com.example.my.pkg.flavor1"
        }
        flavorAdSUpport {
            applicationId = "com.example.my.pkg.flavor2"
        }
  }

このようにして、ファイルのコピーのみを取得し、違いを簡単に処理できます。


14

これは、nt.basの回答とCivicの回答のステップ9を視覚的な例で組み合わせたものです。AndroidStudioを初めて使用して以来、意図されていたものを見つけるのにしばらく時間がかかったためです。Android Studio 3.2.1でテストされています。

  1. Android Studioでクローンを作成するプロジェクトを開きます。(この例では、古いプロジェクト名はtest5で、新しいプロジェクト名はでしたtest6

  2. 左側のファイル概要ペインで、[プロジェクト](現在はandroidと表示されている場合があります)をクリックします。

fig0

  1. ファイルエクスプローラーペイン内のプロジェクトを右クリックし、[リファクタリング]> [クローン]をクリックします。

fig1

  1. 「新しい名前」を新しいプロジェクト名に変更し、「OK」をクリックします。

fig2

  1. ファイル>開く>新しいウィンドウ>新しいプロジェクトを選択>新しいプロジェクトで開くウィンドウ。新しいウィンドウで、Androidスタジオの一番下の行が完了するまで、または「Gradle Sync Finished」と言います。

16

17

14

  1. ファイル概要ペインでマウスの右ボタンをクリック(RMB):app.java/ <古いプロジェクト名(テストではなく、androidTestではなく、空白のプロジェクト)>

fig8

  1. パッケージの新しい名前を入力し、両方のチェックマークを選択して、[リファクタリング]をクリックします。

fig9 fig10

  1. 左下のバーで、「Do refactor」をクリックします。

fig12

  1. app / res / values / strings.xmlを開き、古いプロジェクトの名前(test5など)を次の行のプロジェクトの新しい名前に変更します。

    <string name="app_name">test5</string>
    

fig3

  1. Gradle scripts / build.gradle(Module:app)を開き、その行を新しいプロジェクト名と同じ行に変更します:%fig4

    applicationId "com.example.a.test5"    
    

fig4

  1. コードペインの上部に黄色の線が表示され、gradleの同期が要求されます。「今すぐ同期」を押します。

fig5

  1. トップバーで、ビルド>クリーンプロジェクトを押します。

fig13

  1. 左下に「Gradle build finished」と表示されている場合は、「Build> Rebuild project」をクリックします。

fig14

fig15

  1. これで、プロジェクトを再度コンパイルして実行できるはずです(最初に機能した場合)。

1
すばらしい答えです!上記のステップ5でプロジェクトを開く代わりに、file> new> import projectを使用することもできます。それは私のために働いた。
うちはサスケ

8

私はこれらの手順に従っており、これまでのところ機能しています。

  1. 以前と同じようにフォルダをコピーして貼り付けます。
  2. Android Studio(v3.0.1)を開きます。
  3. [既存のプロジェクトを開く]を選択します。
  4. タイトルが表示されるメッセージ「Import Gradle Projects」を閉じます。
  5. Androidタブの左側に移動します:アプリ-> java->最初のフォルダー(プロジェクトフォルダー)を選択します
  6. リファクタリング=>名前の変更...(Shift + F6)
  7. パッケージの名前を変更し、両方のオプションを選択します-新しいフォルダーの名前を小文字にします。
  8. リファクタリングを行う
  9. 選択:ツールバーの[プロジェクトをGradleファイルと同期]
  10. ビルド=>クリーンプロジェクト
  11. app-> res-> values-> strings.xmlに移動し、2行目のアプリ名を変更します。

さらに、Maps、FirebaseなどのGoogleサービスAPIを使用している場合...古いパッケージ名の参照(app / srcのgoogle_services.jsonなど)があるファイルを必ず削除してください。手順全体については、こちらをご覧ください。
varun

3

Android Developer Fundamentals Course Practicals gitbookの付録には、既存のプロジェクトをコピーして名前を変更する手順が含まれています。

https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-practicals/content/en/appendix_utilities.html#copy_project


多くのモジュールと依存関係を持つ複雑なプロジェクトで、Android Studio 3.3を使用して私にとってうまくいきました。ありがとう。
nat101

1
そのリンクは最後の段階にあります:「このサイトは2019年7月31日に削除されます。」
Peter Mortensen

3

Android Studioでパッケージ名をリファクタリングするとき、パッケージ名の各部分を表示するために、package / android / project / etc-ナビゲーターの右側にある小さな歯車をクリックし、「コンパクトな空の中間パッケージ」をオフにする必要がある場合があります。独自のディレクトリとして。次に、個々のディレクトリに対してリファクタリングを行います。

これは、パッケージ名のすべての部分を変更する必要がある場合に重要です。たとえば、com.example.originalprojectからorg.mydomain.newprojectへ。それ以外の場合、リファクタリング/名前変更操作では、「originalproject」を「newproject」に変更できるだけで、「com.example」は変更されません。これを示す良いビデオがあります:https : //www.youtube.com/watch?v=dMK-RBVLeIY


2

プロジェクトをコピーするときは、C:... \ AndroidStudioProjects(project_name)\ app \ build \ intermediates \ classes \ release ...ディレクトリから元の残りの中間ビルド(someActivity $ 4.class)ファイルも削除する必要があります。そうしないと、コピーしたプロジェクトをコンパイルしようとすると、ほぼ確実に新しいプロジェクトのビルドが失敗します。リファクタリングはこれを解決しません。


2

私はnt.bas回答gnyrfta回答から試してみましたが、私にとってはうまくいきます。

nt.bas回答からの引用:

Android Studioの最新バージョンを使用している場合は、Android Studioでこれを支援できます。

注:私はこれをAndroid Studio 3.0でのみテストしました。

手順は次のとおりです。

  1. プロジェクトビュー(画面左側のキャプチャと構造とともに表示されます)で、AndroidではなくProjectを選択します。 プロジェクトの名前がツリーの一番上になります(外部ライブラリと共に)。 プロジェクトを選択して、に移動します。 Android Studioから、新しい名前とプロジェクトのコピー先を尋ねられます。同じを提供します。

    Refactor -> Copy...

  2. コピーが完了したら、Android Studioで新しいプロジェクトを開きます。
    パッケージは以前のプロジェクト名のままです。
    これは、Javaクラスパッケージ、アプリケーションID、および古いパッケージ名を使用して生成されたその他すべてです。
    それを変える必要があります。
    プロジェクトビューでAndroidを選択します。javaサブディレクトリを
    開き、メインパッケージを選択します。 次に、それを右クリックして、次に進みます。 Android Studioでは、リファクタリングしようとしているパッケージに複数のディレクトリが対応しているという警告が表示されます。 をクリックしてください。 この手順の後、プロジェクトは完全に新しい名前で作成されます。
    RefactorRename

    Rename package Rename directory

  3. res / values / strings.xmlファイルを開き、プロジェクトの名前を変更します。
  4. 最後のステップは、プロジェクトをクリーンアップして再ビルドすることです。そうしないと、プロジェクトを実行しようとすると、Android StudioからAPKをインストールできないことが通知されます(前のプロジェクトを実行した場合)。
    だから、Build -> Clean projectそれからBuild -> Rebuild project

この時点までは、プロジェクト名全体の名前を変更するだけです。パッケージ名を変更するには、次のように記述されたgnyrftaの回答に従う必要があります。

Android Studioでパッケージ名をリファクタリングするとき、パッケージ名の各部分を表示するために、package / android / project / etc-ナビゲーターの右側にある小さな歯車をクリックし、「コンパクトな空の中間パッケージ」をオフにする必要がある場合があります。独自のディレクトリとして。次に、個々のディレクトリに対してリファクタリングを行います。


PS:あなたが持っているなら

セッションの終了に失敗しました:INSTALL_FAILED_INVALID_APK:分割lib_slice_0_apkが複数回定義されました

appmoduleのビルドフォルダを削除してプロジェクトを再ビルドするだけです!

これで問題が解決します!


2

私はAndroid 3.3を使用しています。

1-プロジェクトビューを選択する

2-プロジェクトのルートにあるプロジェクト名を右クリックしてオプションrefactor -> copyを選択すると、新しい名前を選択するウィンドウが表示されます。

3-ステップ2の後、Androidが新しいプロジェクトを作成します。新しいプロジェクトを新しい名前で開く必要があります

4-「string.xml」でアプリの名前を変更します。「app / res / values / string.xml」にあります

これで、同じ名前の新しいプロジェクトができました。今、あなたはパッケージの名前を変更したいかもしれません、それは次のステップで説明されています

(オプション)パッケージmainの名前を変更するには

5-「app / java」に移動すると、同じ名前の3つのフォルダー、メインのフォルダー、(androidTest)およびがあり(test)、メインのフォルダーを右クリックしてを選択format -> renameすると、複数のディレクトリがそのパッケージに対応しているという警告が表示されます、[パッケージ名を変更]をクリックします。新しい名前を選択し、リファクタリングをクリックします。ここで、コードビューの下にリファクタプレビューがあります。[リファクタリングを実行]をクリックします。

6-「ビルド」オプションに移動し、「プロジェクトのクリーン」、「プロジェクトの再ビルド」の順にクリックします。

7-次にプロジェクトを閉じて、再度開きます。


1
ついに20分もかからないソリューション!最初は奇妙なエラーなしで試してみました。ステップ5では、パッケージをリファクタリングし、名前を変更しました。
スノーマン

2

プロジェクトがあるソースフォルダーに移動します。

  1. プロジェクトと過去をコピーして名前を変更します。
  2. Android Studioを開いて更新します。
  3. に移動し->Settings.gradleます。
  4. 含む ':your new project name '

2

Android Studio 3.5での要件とテスト

古いプロジェクトが既存のAndroid Studioライブラリで正しく動作することを確認してください。

  1. プロジェクトディレクトリをコピーし、新しいプロジェクト名(例:Bramara)にフォルダー名を変更
  2. Android Studio 3.5を使用して既存の新しいプロジェクトを開きます。プロジェクトを開いたら、「1:プロジェクト->プロジェクト」に移動します。プロジェクトには、新しいプロジェクトフォルダーと古いプロジェクトフォルダーを指す2つのディレクトリしかないことがわかります。プロジェクトを閉じます。
  3. テキストエディターを使用して、新しいプロジェクト-> app-> appl.imlのappl.imlを編集します。古いプロジェクト名をすべて新しいプロジェクト名に置き換えます。
  4. 既存の新しいプロジェクトを再度開きます。1:プロジェクト->プロジェクトに移動します。プロジェクトにディレクトリが1つしかない場合があります。
  5. 1:プロジェクト->パッケージに移動します。コンポーネントを右クリック->リファクタリング->名前の変更。
  6. 警告メッセージがポップアップします。すべての変更が新しいプロジェクトフォルダに適用されることを確認してください!その後、パッケージ名の変更(例:com.dedetok.bramara)を選択します。
  7. 1:Project-> Androidに移動します。アプリを開く->マニフェスト-> AndroidManifest.xml。アプリケーションアクティビティを新しいパッケージ名に修正します。アプリケーション名を新しい名前に変更します。
  8. Gradle Scripts-> build.gradle(モジュール:app)を開き、applicationIdを新しいプロジェクト(例:com.dedetok.bramaraと同期プロジェクト)に変更します。
  9. 新しいプロジェクトをクリーンアップして再ビルドします。
  10. 新しいプロジェクトを編集/変更する準備が整いました。

注:adb runでアクティビティが見つからない場合は、実行/デバッグ構成を編集してください。モジュールは、アプリケーションなどのモジュールアプリケーションを指す必要があります。


ステップ7で、app-> manifestsが見つかりませんでした。したがって、Project-> Projectを開き、srcフォルダーからマニフェストを開きました。スタジオはファイルを編集するために同期を要求しましたが、問題はあり
ませんでした

1

実行する最も簡単な(そして間違いなく最も速い)方法には、WINRAR、7zip、または同様のアーカイブソフトウェアが必要です。

  1. Windowsエクスプローラーでプロジェクトフォルダーを見つけます。ダブルクリックしてこのフォルダーを開きます。

  2. 新しいフォルダを作成し、「バックアップ」という名前を付けます。

  3. まだプロジェクトフォルダーにいるときに、「backup」フォルダーを除くすべてのファイル/フォルダーを選択します。

  4. 右クリックして[アーカイブに追加]または[アーカイブを作成]を選択します(コマンドはアーカイブソフトウェアによって異なります)

  5. アーカイブに名前を付けて[OK]をクリックします。

  6. このアーカイブを「バックアップ」フォルダに移動します。

完了です-バックアップアーカイブを開くには、[バックアップ]フォルダーを開き、バックアップファイルを右クリックします。[抽出]を選択するか、ファイルを抽出する新しいフォルダーを作成して[O​​K]をクリックし、Android Studioなどから通常どおりにプロジェクトを開きます。


0

私はこれに問題がありました:

https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/appendix/appendix-utilities/appendix-utilities.html

Android Studioバージョン:3.3.2

.idea / workspace.xmlファイルを強制終了するまで。

$ cp -rv Testcopysource/ TestCopyDest
$ rm TestCopyDest/.idea/workspace.xml
$ stdio.sh & # Run Android Studio on Linux

その前に、Android Studioは引き続き元のソースフォルダーをポイントし、すべての名前変更が元のソースファイルに適用されました(上の例のTestcopysource内)。


0

2020年2月の時点で、Android Studio 3.5.3の場合、私が見つけた最も簡単な答えはこのビデオです。

注1: 01.24では、[検索]タブが下に表示されます。「リファクタリングを実行」をクリックして、ビデオのように続行します。

注2:「プレーンテキストとしてマーク」されたJava / Kotlinファイルがある場合は、上部のパッケージ名を手動で変更する必要があります。package com.example.thisplaceneedstobemanuallyupdated

注3:ビデオと同様に、名前の変更中は大文字と小文字に注意してください。

注4:プロジェクトウィンドウのタイトルバーのプロジェクト名を更新する場合は、「Gradle Scripts」ディレクトリの下の「settings.gradle」ファイルrootProject.name = 'YourProjectName'内を変更します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.