我有一個Android項目,裏面有一個庫模塊,我的項目工作正常,編譯項目我得到.aar包含在一個測試項目中,一切正常。 現在,我已經在我的庫模塊添加一個擴展應用程序的活動,Y添加了這個類在庫Android可能包括.aar with activity extends Application?
<application
android:allowBackup="true"
android:label="@string/app_name"
android:name=".MyActivityExtendsApplications"
當我測試它的作品完美的項目,但是當我坐的manifiest.xml。 aar並在其他項目上測試失敗。問題是,它沒有找到活動擴展應用...我反編譯了AAR和我看到的一切是正確的,所有的類都是文件夾內 的錯誤是
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mylibrary.MyActivityExtendsApplications" on path: DexPathList[[zip file "/data/app/com.myapplication-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapplication-1/lib/arm, /vendor/lib, /system/lib]]
Suppressed: java.lang.ClassNotFoundException: com.mylibrary.MyActivityExtendsApplications
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 12 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
我加入grandle依賴關係庫.aar在所有情況下以同樣的方式
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
testCompile 'junit:junit:4.12'
compile '[email protected]'
}
repositories{
flatDir{
dirs 'libs'
}
}
我查一下我的測試項目合併清單和活動是有
application
android:name="com.mylibrary.MyActivityExtendsApplications"
android:allowBackup="true"
而且我可以在我的測試項目中導入此活動並查看代碼
並且我在libs文件夾中添加了mylibrary。 當我刪除活動MyActivityExtendsApplications時,我的庫工作正常。
你是通過一個活動擴展一個應用程序來瞄準什麼? – petrumo
嗨@petrumo,我需要這個,因爲我的aar實現http://altbeacon.github.io/android-beacon-library/samples.html,我需要從後臺開始 – AnD
哇,我很驚訝,一個活動是偶數能夠擴展應用程序。這當然不是Android Beacon庫用於後臺啓動的預期用法。我不想用這個不尋常的應用程序用法問題來解決這個問題,但如果需要,我很樂意在另一個問題中解決它。 – davidgyoung