使用 FirebaseListAdapter 时的构造函数错误
Constructor error when using FirebaseListAdapter
我正在尝试使用 FirebaseListAdapter 创建一个包含产品名称的 ListView,但出现此错误:
error: no suitable constructor found for
FirebaseListAdapter(MainActivity,Class<String>,int,Firebase) constructor
FirebaseListAdapter.FirebaseListAdapter(Activity,Class<String>,int,Query)
is not applicable
我有最新版本的 Google Play 服务和 Google 存储库,如屏幕截图所示:
我的build.gradle(root)是:
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.google.gms:google-services:3.0.0'
}
我的 build.gradle(应用程序)是:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:0.4.1'
}
apply plugin: 'com.google.gms.google-services'
我使用的代码是这样的:
public class MainActivity extends AppCompatActivity {
Firebase firebase;
ArrayList<String> arrayList = new ArrayList<>();
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
firebase = new Firebase(Config.FIREBASE_URL);
listView = (ListView) findViewById(R.id.listView);
}
@Override
protected void onStart() {
super.onStart();
Firebase products = firebase.child("names");
FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this, String.class, String.class, android.R.layout.simple_list_item_1, products) {
@Override
protected void populateView(View v, String model, int position) {
//
}
};
}
}
我尝试了针对类似问题找到的所有解决方案,但没有成功。提前致谢!
试试看:
FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_list_item_1, products) {
@Override
protected void populateView(View v, String model) {
//
}
};
FirebaseListAdapter populateView 方法只有两个参数 String.class,是两次。
您正在混合使用新的 SDK:
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
使用旧版 SDK:
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:0.4.1'
它们不兼容。进行此更改:
//compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:1.0.1'
并查看 Firebase Upgrade Guide 以了解所需的代码更改。
如果您不需要新 SDK 的功能,那么我想您可以删除这些依赖项并 运行 使用旧版 SDK。我没试过,不知道你会不会遇到其他问题。
我正在尝试使用 FirebaseListAdapter 创建一个包含产品名称的 ListView,但出现此错误:
error: no suitable constructor found for
FirebaseListAdapter(MainActivity,Class<String>,int,Firebase) constructor
FirebaseListAdapter.FirebaseListAdapter(Activity,Class<String>,int,Query)
is not applicable
我有最新版本的 Google Play 服务和 Google 存储库,如屏幕截图所示:
我的build.gradle(root)是:
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.google.gms:google-services:3.0.0'
}
我的 build.gradle(应用程序)是:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:0.4.1'
}
apply plugin: 'com.google.gms.google-services'
我使用的代码是这样的:
public class MainActivity extends AppCompatActivity {
Firebase firebase;
ArrayList<String> arrayList = new ArrayList<>();
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
firebase = new Firebase(Config.FIREBASE_URL);
listView = (ListView) findViewById(R.id.listView);
}
@Override
protected void onStart() {
super.onStart();
Firebase products = firebase.child("names");
FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this, String.class, String.class, android.R.layout.simple_list_item_1, products) {
@Override
protected void populateView(View v, String model, int position) {
//
}
};
}
}
我尝试了针对类似问题找到的所有解决方案,但没有成功。提前致谢!
试试看:
FirebaseListAdapter<String> adapter = new FirebaseListAdapter<String>(this, String.class, android.R.layout.simple_list_item_1, products) {
@Override
protected void populateView(View v, String model) {
//
}
};
FirebaseListAdapter populateView 方法只有两个参数 String.class,是两次。
您正在混合使用新的 SDK:
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
使用旧版 SDK:
compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:0.4.1'
它们不兼容。进行此更改:
//compile 'com.firebase:firebase-client-android:2.4.0'
compile 'com.firebaseui:firebase-ui:1.0.1'
并查看 Firebase Upgrade Guide 以了解所需的代码更改。
如果您不需要新 SDK 的功能,那么我想您可以删除这些依赖项并 运行 使用旧版 SDK。我没试过,不知道你会不会遇到其他问题。