2016-07-18 6 views
0

アンドロイドライブラリからアクティビティを呼び出す方法を私は図書館からメインプロジェクトである活動を呼び出すためにしようとしている

ライブラリコード

Intent in = new Intent(this, com.process.agenda.activity.MainActivity.class); 
startActivity(in); 

エラー:プロジェクト間の循環参照:アプリ - >:autenticadorCadastro - >:アプリ

メインプロジェクト

apply plugin: 'com.android.application' 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 

    compile project(':autenticadorCadastro') 
} 

図書館

apply plugin: 'com.android.library' 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 

    compile project(path: ':app') // here throws the error 
} 

おかげ

答えて

1

はあなたのことができるようにはなりません。あなたがあなたのライブラリからあなたのメインプロジェクトに電話する必要があった場合、プロジェクトは間違った方法を反転させるライブラリの依存です。ライブラリを作成している場合は、それ自体と他のライブラリのみに依存する必要があります。

+0

これはほとんどの場合当てはまりますが、明確なコーナーケースがあります。たとえば、ホームボタンを持つUIウィジェットですが、アプリに基づいてホームボタンが変わります。また、ライブラリの種類によって異なります(一部のライブラリは、基本的に、ホワイトボクシングのためにいくつかのアセットをスワップアウトするアプリです)。 –

+0

メインと再び通信する方法はありませんか? – WillOliveira

1

インテントを作成する他の方法の1つを使用する必要があります。通常、私はapkの名前とアクティビティ名(呼び出し元のアプリケーションから渡されるか、内部のみのライブラリの場合はアプリケーションによってオーバーライドされる文字列リソースに入れます)。

関連する問題