2016-10-10 8 views
0

これはどのように1つの構造のパッケージを宣言し、インポートするためのAndroidのコード、通常は次のとおりです。効果的に渡すために、「コンパイル時」変数またはプラグマを渡すためにどんな/ Androidのメーカー/ Javaを使用する方法はありパッケージ名変数をAndroidのソースコードに渡すことはできますか?

package com.company.myApp 

import com.company.myApp.SomeClass 
import com.company.myApp.somePackage.SomeOtherClass 

"com.company.myApp"文字列のソースコードに?何かのように:

package BASE_PACKAGE_NAME 

import BASE_PACKAGE_NAME.SomeClass 
import BASE_PACKAGE_NAME.somePackage.SomeOtherClass 
+0

多分Javaクラス・ライターの可能性助けて? – K3v1n

答えて

0

私は個人的にあなたの のための仕事をすることは何も知らないが、私はhttp://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename

あなたの建てた.apkのマニフェストに使用されている最終的なパッケージを読み込むように、アプリがあなたの端末とGoogle Playの ストアで知られているパッケージである が「アプリケーションID」です。

Rクラスを参照するためにソースコードで使用されるパッケージ は、相対アクティビティ/サービス登録を解決するために、 を「パッケージ」と呼びます。

次のようにあなたは、あなたのGradleファイルでアプリケーションIDを指定することができます。

アプリ/ build.gradleを:ここで

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.1" 

    defaultConfig { 
     applicationId "com.example.my.app" 
     minSdkVersion 15 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 

は重要な部分です:あなたがやったときは上記の2つのパッケージは独立しています。 コードを使用して、アクティビティに使用する内部パッケージを変更し、 サービスを更新し、マニフェストパッケージを更新し、インポート のリファクタリングを行うことができます。これは、あなたの アプリケーションの最終IDには関係しません。これは常に、Gradleファイルで指定されたアプリケーションID になります。

あなたは味のためにアプリのAPPLICATIONIDを変えると、次のGradleのDSLメソッドを使用してタイプ を構築することができます。

アプリ/ build.gradle:

productFlavors { 
    pro { 
     applicationId = "com.example.my.pkg.pro" 
    } 
    free { 
     applicationId = "com.example.my.pkg.free" 
    } 
} 

buildTypes { 
    debug { 
     applicationIdSuffix ".debug" 
    } 
} 
.... 
+0

このアイデアをありがとう。私のやりたいことを達成するには少し複雑ですが、うまくいくはずです。 – pbm

関連する問題