由于某种原因,RoboBlender不会生成注释数据库。 我的build.gradle具有以下依赖项:
dependencies {
provided 'org.roboguice:roboblender:3.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.roboguice:roboguice:3.0'
}
答案 0 :(得分:4)
这不是最终解决方案,但它可以帮助您。我不知道为什么,但RoboGuice 3.0和3.0.1抛出此异常。您需要做的是禁用MainActivity
中数据库的注释,如下所示:
static {
RoboGuice.setUseAnnotationDatabases(false);
}
我希望这个帮助
答案 1 :(得分:1)
好的,似乎因为我没有在主要课程MainActivity中进行任何注射,所以它没有触发内部AsyncTask的注释处理。因此,没有创建注释数据库。
此外,似乎不支持匿名内部类中的注入。所以AsyncTask
需要是一个合适的类(它仍然可以在MainActivity
内。)
我还没弄明白如何告诉RoboGuice检查内部类,即使外部类没有注射。
答案 2 :(得分:0)
项目结构的其余部分是什么样的?
具体来说,您是否阅读了RoboBlender wiki
默认情况下,Android Studio的更高版本会生成一个属于Configuring RoboBlender for a large application using libraries
类别的项目。
下面修复了以下内容:
diff --git a/app/build.gradle b/app/build.gradle
index 1e69cec..8450fff 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,9 +34,9 @@ android {
}
dependencies {
- provided 'org.roboguice:roboblender:3.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.roboguice:roboguice:3.0'
+ provided 'org.roboguice:roboblender:3.0'
}
project.tasks.withType(JavaCompile) { task ->
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 017d11e..dba9e49 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,6 +8,7 @@
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="roboguice.annotations.packages" android:value="org.jush.roboguice3test"/>
+ <meta-data android:name="roboguice.modules" android:value="org.jush.roboguice3test.GuiceModule"/>
<activity
android:name="org.jush.roboguice3test.MainActivity"
android:label="@string/app_name" >
package org.jush.roboguice3test;
import android.app.Application;
import com.google.inject.AbstractModule;
public class GuiceModule extends AbstractModule {
private Application application;
public GuiceModule(Application application) {
this.application = application;
}
@Override
protected void configure() {
}
}
答案 3 :(得分:0)
你有什么办法可以触发注释处理?我的主要活动是注射。 maina活动继承自抽象活动,其也具有注射。该抽象活动继承自RoboActivity。
当我将 roboguice.annotations.packages 设置为 roboguice 时,不再抛出NoClassFound异常,但我得到第一个inject-Object的NullPointer异常我想用。
我使用eclipse启动应用程序。
当我禁用RoboBlender(RoboGuice.setUseAnnotationDatabases(false);)注入时。
答案 4 :(得分:0)