java - How to run app in Android Studio with shared library-module from other project? -


i use self-written library-module within project suggested in

https://code.google.com/p/android/issues/detail?id=105570

and

android studio 0.8.1 creating modules without copying files?

i added lines settings.gradle , furthermore added included library via "project structure"-dialog dependency project. use android studio 1.2.2.

everything within ide looks fine (imports working, library-code can browsed , edited, both modules can "maked" without errors), can't seem launch project on phone / emulator.

i "classnotfoundexception" first class library used in app.

i copy-pasted entire project class class eclipse run without problems.

what have compiled classes of library app onto phone?

settings.gradle

include ':app' include ':sudoku' project(':sudoku').projectdir=new file('/../libs/sudoku') 

build.gradle (app)

apply plugin: 'com.android.application'  android {     compilesdkversion 22     buildtoolsversion "22.0.1"      defaultconfig {         applicationid "com.frozenmilkmeteoroids.sudokuapp"         minsdkversion 15         targetsdkversion 22         versioncode 1         versionname "1.0"     }     buildtypes {         release {             minifyenabled false             proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile filetree(include: ['*.jar'], dir: 'libs')     compile 'com.android.support:appcompat-v7:22.2.0'     compile project(':sudoku') } 

build.gradle (library)

apply plugin: 'com.android.library'  android {     compilesdkversion 22     buildtoolsversion "22.0.1"      defaultconfig {         minsdkversion 15         targetsdkversion 22         versioncode 1         versionname "1.0"     }     buildtypes {         release {             minifyenabled false             proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile filetree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:22.2.0' } 

i use android studio 1.2.2 , here step step of how create standalone library project , reference main project:

  1. create android project library normal android project. call libprojectname

  2. rename libprojectname's app module libmodulename

  3. in libmodulename's build.gradle change: apply plugin: 'com.android.application' apply plugin: 'com.android.library' , remove applicationid defaultconfig section

  4. go main project i.e project reference libprojectname

  5. edit settings.gradle, add:

include ':libprojectname:libmodulename'

project(':libprojectname:libmodulename').projectdir=new file('relative/path/libprojectdir/libmoduledir')

  1. edit build.gradle in app module, add:

compile project(':libprojectdir:libmodulename')


now assuming module , module-directory name in sudoku modulesudoku , applying steps above, solution is:

settings.gradle

include ':app' include ':sudoku:modulesudoku' project(':sudoku:modulesudoku').projectdir=new file('/../libs/sudoku/modulesudoku') 

build.gradle (app)

apply plugin: 'com.android.application'  android {     compilesdkversion 22     buildtoolsversion "22.0.1"      defaultconfig {         applicationid "com.frozenmilkmeteoroids.sudokuapp"         minsdkversion 15         targetsdkversion 22         versioncode 1         versionname "1.0"     }     buildtypes {         release {             minifyenabled false             proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile filetree(include: ['*.jar'], dir: 'libs')     compile 'com.android.support:appcompat-v7:22.2.0'     compile project(':sudoku:modulesudoku') } 

build.gradle (library)

apply plugin: 'com.android.library'  android {     compilesdkversion 22     buildtoolsversion "22.0.1"      defaultconfig {         minsdkversion 15         targetsdkversion 22         versioncode 1         versionname "1.0"     }     buildtypes {         release {             minifyenabled false             proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'         }     } }  dependencies {     compile filetree(dir: 'libs', include: ['*.jar'])     compile 'com.android.support:appcompat-v7:22.2.0' } 

Comments