Wie kann ich verschiedene String-Ressource-Dateien während der Android-Anti-Release und Debug-Builds?

Ich möchte verschiedene String-Ressourcen-Dateien während der Android-Anti-Release-und Debug-Builds. Ich brauche dies, um eine separate Konfiguration für Map-API-Schlüssel, Remote-Host etc

  • Android: Wie man die Flip-Animation für Android-Aktivität zu machen, wie wie iPhone Flip horizontal von links nach rechts?
  • Dynamische Einstellung der übergeordneten Aktivität
  • Ich versuche, in der Nähe Orte wie Banken, Restaurants, Geldautomaten innerhalb der gezeichneten Bereich auf Google Maps in Android zu suchen
  • Setzen von Inhalten unter AppBarLayout in einem CoordinatorLayout
  • Mobile Vision API - verknüpft neues Detektorobjekt, um die Frame-Verarbeitung fortzusetzen
  • Android Studio Gradle Konnte nicht finden Methode compile ()
  • SlidingDrawer ohne Griff und Schiebeaktionen zum Inhalt
  • Kann android PopupWindow einen weiteren PopupWindow zeigen?
  • Android Studio ConstraintLayout mit ScrollView
  • Button Onclick Listener in mitgelieferten Layouts
  • INVALID_USER_CREDENTIALS / JSON_EXCEPTION in "PayU" Android Integration
  • Kotlin und neue ActivityTestRule: Das @Rule muss öffentlich sein
  • 3 Solutions collect form web for “Wie kann ich verschiedene String-Ressource-Dateien während der Android-Anti-Release und Debug-Builds?”

    Ich benutze Eclipse für Tag zu Tag Debug-Builds, dann Ant für Release baut. Ich habe Debug- und Release-Versionen der Datei mit dem Google Maps API Key. Ich habe die build.xml (ich bin auf SDK-Tools R15) geändert, um das Kopieren der entsprechenden Datei vor dem Build und danach zu machen. Ich habe das -pre-build geändert und zertreffende Ziele wie folgt:

    <target name="-pre-build"> <echo message="In pre build-----------------------------------" /> <echo message="build target ${build.target}" /> <if condition="${build.is.packaging.debug}"> <then> <echo>Copying debug api key************************************</echo> <copy file="${layout.dir}/googlemapdebug.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" /> </then> <else> <echo>Copying RELEASE api key************************************</echo> <copy file="${layout.dir}/googlemaprelease.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" /> </else> </if> </target> <target name="release" depends="clean, -set-release-mode, -release-obfuscation-check, -package, -release-prompt-for-password, -release-nosign" ............. LINES OMITTED ............. <!-- Zip aligns the APK --> <zipalign-helper in.package="${out.unaligned.file}" out.package="${out.final.file}" /> <echo>Release Package: ${out.final.file}</echo> <echo>Always copy DEBUG MAPS API file back for Eclipse **********************</echo> <copy file="${layout.dir}/googlemapdebug.xml" tofile="${layout.dir}/googlemap.xml" overwrite="true" /> </sequential> </do-only-if-not-library> <record-build-info /> </target> 

    Ich definiere layout.dir in der ant.properties (neuer Name für build.properties nach SDK Tools 14) Datei:

     projectname=MyProject workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo base.dir=${workspace.dir}/${projectname} layout.dir=${base.dir}/res/layout 

    Sie könnten dies an Ihre Bedürfnisse anpassen, vorausgesetzt, Sie haben nicht zu viele Dateien zu tauschen in und aus. Ich vermute, Sie könnten eine Eigenschaft für das Verzeichnis mit Ihrer Strings.xml hinzufügen

    Nick, ich verstehe nicht, warum du auch die Release-Aufgabe umschreibst. Ich habe nur Vorbau hinzugefügt und es funktioniert für mich

     <target name="-pre-build"> <if condition="${build.is.packaging.debug}"> <then> <echo>Copying debug config</echo> <copy file="./config/debug.xml" tofile="./res/values/config.xml" overwrite="true"/> </then> <else> <echo>Copying release config</echo> <copy file="./config/release.xml" tofile="./res/values/config.xml" overwrite="true"/> </else> </if> </target> 

    Die beiden Antworten basieren alle auf Eclipse ADT . Jetzt Android Studio ist die beliebtere IDE, können Sie die Vorteile der gradle Build-System.

    build.gradle in Ihrer build.gradle Datei den folgenden Code in android Tag ein:

     buildTypes { release { buildConfigField "boolean", "LOG_DEBUG", "false" resValue "string", "some_key", "AAAAAAA" } debug { buildConfigField "boolean", "LOG_DEBUG", "true" resValue "string", "some_key", "BBBBBBB" applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } } } 

    Sie können BuildConfig.LOG_DEBUG als boolean Wert in Ihrem Java-Code verwenden. import your.package.name.BuildConfig; daran, import your.package.name.BuildConfig; zu import your.package.name.BuildConfig;

    Sie können auch some_key als String-Ressource verwenden. Der Java-Code, der es benutzt, ist: R.string.some_key .

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.