2017-10-31 4 views
0

私はAndroid Plugin for Gradle 2.3.3と一緒にAndroid Studio 2.3.3を使用しています。アプリケーションでライブラリモジュールのアクティビティを参照できません

サンプルプロジェクトhttps://github.com/Uni-/AndroidModuleTestをご覧ください。このプロジェクトでは、のサンプル(Androidスタジオ名として)、アプリおよびライブラリの2つのサンプルがあります。

ライブラリcom.example.test.myapplication.MainActivityクラスがあり、それはAndroidManifest.xmlアプリで参照されます。アプリケーションがうまくコンパイルされ、それが起動時にクラッシュしている:

10-31 22:20:55.031 30084-30084/? I/zygote64: Late-enabling -Xcheck:jni 
10-31 22:20:55.312 30084-30084/? I/InstantRun: starting instant run server: is main process 
10-31 22:20:55.325 30084-30084/? D/AndroidRuntime: Shutting down VM 
10-31 22:20:55.327 30084-30084/? E/AndroidRuntime: FATAL EXCEPTION: main 
                Process: com.example.test.myapplication, PID: 30084 
                java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.test.myapplication/com.example.test.myapplication.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.test.myapplication.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/base.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/lib/arm64, /system/lib64, /vendor/lib64]] 
                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2718) 
                 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                 at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                 at android.os.Handler.dispatchMessage(Handler.java:105) 
                 at android.os.Looper.loop(Looper.java:164) 
                 at android.app.ActivityThread.main(ActivityThread.java:6541) 
                 at java.lang.reflect.Method.invoke(Native Method) 
                 at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
                Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.test.myapplication.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/base.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.test.myapplication-dsBQ8b1LFh9WtKzvdfrLYg==/lib/arm64, /system/lib64, /vendor/lib64]] 
                 at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) 
                 at java.lang.ClassLoader.loadClass(ClassLoader.java:379) 
10-31 22:20:55.328 30084-30084/? E/AndroidRuntime:  at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
                 at android.app.Instrumentation.newActivity(Instrumentation.java:1173) 
                 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708) 
                 ... 9 more 
10-31 22:21:00.439 30084-30093/com.example.test.myapplication I/zygote64: Waiting for a blocking GC ObjectsAllocated 
10-31 22:21:00.537 30084-30093/com.example.test.myapplication I/zygote64: WaitForGcToComplete blocked for 97.913ms for cause ObjectsAllocated 

MainActivityクラスは、ログによると、アプリケーションの成果物には存在しないようです。実際に

アプリbuild.gradleは、これらの行が含まれています。私は下の行でこれらの行を交換すると

debugCompile project(path: ':library', configuration: 'debugCompile') 
releaseCompile project(path: ':library', configuration: 'releaseCompile') 

、エラーが固定行く:

compile project(':library') 

はしかし、これではありません私が望むもの実際のプロジェクトにはさまざまな製品の種類とカスタムビルドタイプがありますので、compile、またはimplementation in 3.0という単なる解決策にはなりません。

私のサンプルプロジェクトで何が間違っていましたか?

+0

"私の実際のプロジェクトでは、さまざまな製品の種類とカスタムビルドタイプを持っているので、コンパイルだけでも3.0でも実装できます。いくつかのビルドタイプだけがこのクラスを使用しますか?エラーが発生した実行中のビルドタイプはどれですか? –

+0

実際には、あなたのレポにjavaフォルダはありません(src/main/javaにあるはずです)。あなたの活動はどこですか? – Jibbo

+0

@Jibbo /ライブラリ/ src/main/java/com/example/test/myapplication /を参照してください。 –

答えて

1

私はこれを自分で修正しました。

publishNonDefault truebuild.gradleに設定し、のライブラリを設定します。

debugCompile project(path: ':library', configuration: 'debug') 
releaseCompile project(path: ':library', configuration: 'release') 

151f6e4に修正:よう

また、文脈依存関係を宣言する必要があります。ありがとう。

関連する問題