这个错误显示在logcat-java中。lang.NoSuchMethodError:没有静态方法zzce(Landroid/content/Context;)V类内Lcom/google/android/gms/common/GoogleAppAvailability;或者它的超类(声明'com.google.android.gms.common.GoogleAppAvailability'出现在/data/app/com.example.gpsnotify-2/base.apk中)
NewtaskActivity.java
package com.example.gpsnotify;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.ui.PlacePicker;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class NewtaskActivity extends AppCompatActivity {
//For variables of adding task view
private EditText edtitle,eddescription;
Task task;
DatabaseReference drf;
FirebaseAuth fuserAuth = FirebaseAuth.getInstance();
FirebaseUser fuser = fuserAuth.getCurrentUser();
String uid= fuser.getUid();
//For variables of adding task view
//For placepicker
ImageView map;
int PLACE_PICKER_REQUEST = 1;
String longi = null;
String latt = null;
//For placepicker
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newtask);
//For toolbar
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close);
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#000000")));
//For toolbar
//For binding views of newtask layout
edtitle = (EditText) findViewById(R.id.et_Title);
eddescription = (EditText) findViewById(R.id.et_Description);
//For binding views of newtask layout
//For placepicker
map = (ImageView) findViewById(R.id.map_pic);
map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
try {
startActivityForResult(builder.build(NewtaskActivity.this),PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
});
//For placepicker
}
//For placepicker
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PLACE_PICKER_REQUEST) {
if (resultCode == RESULT_OK) {
Place place = PlacePicker.getPlace(data, this);
longi = String.valueOf(place.getLatLng().longitude);
latt = String.valueOf(place.getLatLng().latitude);
}
}
}
//For placepicker
//For save icon
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater mif = getMenuInflater();
mif.inflate(R.menu.new_task_menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.save_task:
savetask();
return true;
}
return super.onOptionsItemSelected(item);
}
private void savetask(){
task = new Task();
drf = FirebaseDatabase.getInstance().getReference("Users").child(uid).child("Tasks");
String ttl = edtitle.getText().toString();
String des = eddescription.getText().toString();
if(ttl.trim().isEmpty())
{
edtitle.setError("Enter a title.");
edtitle.requestFocus();
return;
}
if(des.trim().isEmpty())
{
eddescription.setError("Enter a description.");
eddescription.requestFocus();
return;
}
task.setLatitude(latt);
task.setLongitude(longi);
task.setTitle(ttl);
task.setDescription(des);
drf.push().setValue(task);
Toast.makeText(NewtaskActivity.this,"Saved",Toast.LENGTH_SHORT);
finish();
}
//For save icon
}
AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gpsnotify">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="API key" />
<activity android:name=".NewtaskActivity"
android:parentActivityName=".MainActivity"
android:label="Add new task"
/>
<activity android:name=".LoginActivity" />
<activity android:name=".SignupActivity" />
<activity android:name=".SplashscreenActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
</application>
</manifest>
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.gpsnotify"
minSdkVersion 18
targetSdkVersion 29
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:22.0.0'
//noinspection GradleCompatible
implementation 'com.google.android.gms:play-services:12.0.0'
//implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.firebase:firebase-core:12.0.0'
implementation 'com.google.android.gms:play-services-gcm:12.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation "androidx.cardview:cardview:1.0.0"
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc01"
implementation "androidx.recyclerview:recyclerview:1.1.0"
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.google.firebase:firebase-storage:12.0.0'
implementation 'com.google.firebase:firebase-database:12.0.0'
implementation 'com.firebaseui:firebase-ui-database:6.2.1'
implementation 'com.firebaseui:firebase-ui-firestore:6.2.1'
implementation 'android.arch.core:runtime:1.1.1'
implementation 'com.android.support:multidex:1.0.3'
//implementation 'com.google.firebase:firebase-firestore:21.4.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
map.setOnClickListener ( new View.OnClickListener () {
@Override
public void onClick(View v) {
openPlacePicker ();
}
} );
private void openPlacePicker () {
PlacePicker.IntentBuilder builder = new
PlacePicker.IntentBuilder ();
try {
startActivityForResult ( builder.build ( this ),
PLACE_PICKER_REQUEST );
//Enable Wifi
wifiManager.setWifiEnabled ( true );
} catch (GooglePlayServicesRepairableException e) {
// Log.d("Exception",e.getMessage());
e.printStackTrace ();
} catch (GooglePlayServicesNotAvailableException e) {
//Log.d("Exception",e.getMessage());
e.printStackTrace ();
}
}
@Override
protected void onActivityResult ( int requestCode, int
resultCode, Intent data){
super.onActivityResult ( requestCode, resultCode, data );
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PLACE_PICKER_REQUEST:
Place place = PlacePicker.getPlace (
MainActivity.this, data );
double latitude = place.getLatLng ().latitude;
double longitude = place.getLatLng ().longitude;
CharSequence address = place.getAddress ();
String PlaceLatLng = String.valueOf ( latitude )
+ " , " + String.valueOf ( longitude );
tv_MyLocation.setText ( PlaceLatLng );
}
}
我一直在做一个渲染Mandelbrot分形的项目。对于那些知道的人,它是通过迭代以下函数生成的,其中c是复杂平面上的点: 迭代该函数将生成以下分形(忽略颜色): 当你把函数改为这个,(z提高到三次方) 分形应该呈现为这样(同样,颜色并不重要): 然而,当我把z提升到3的幂次时,我得到了一个非常类似于把z提升到2的幂次时的图像。如何正确进行分形渲染?这是完成迭代的代码:(实变量和虚变量只是将屏幕从-
问题内容: 我很难理解如何避免在jpa或hibernate状态下进行n + 1选择。 从我阅读的内容来看,有一个“ left join fetch”,但是我不确定它是否仍然适用于多个列表(oneToMany)。 有人可以给我解释一下,还是给我一个带有清晰完整说明的链接? 很抱歉,如果这是一个菜鸟问题,但我找不到关于此问题的真正清晰的文章或文档。 谢谢 问题答案: 除了联接之外,您还可以使用子选择。
问题内容: 我有一组选择,所有选择都有相同的选项。然后,我通过过滤器运行这些选项,以便在其他选择中选择的任何选项都不会显示在选择中。请参阅此jsFiddle(在非IE浏览器中)以了解我的意思。基本上,我防止在选择中多次选择同一选项 现在,我所做的事情在IE中有问题。在IE中打开小提琴(我只在IE9中尝试过,但是我猜以前的版本有相同的问题)。将最后一个选择更改为AAA。请注意,其他三个选择如何改变了
不幸的是,再也不可能这样做了,这里描述:如何选择Google App Engine服务器的位置 当我创建一个新项目时,没有“高级”设置。如果我仍然只是“盲目”部署(在忽略了令人讨厌的新教程/强行进入喉咙的快速启动后),它将使用欧洲-西方作为地区。
问题内容: 我的CSS定位器有问题。我为父母有一个独特的标签,从那里我可以得到所需的孩子。 该类与所有下拉列表相似,因此唯一会改变的值是。另外,有时我需要取消选择它们。 为此,我有一个定位器。 如您所见,第一部分仍然相同。 所以我的问题是是否有可能编写一些方法(或任何其他方式)来更改定位器的最后一部分?我有600多个下拉菜单,并且为600个新定位器创建了一个目标,这使我发疯。 对我来说,执行类似操
我正在开发一个巴士预订应用程序。我使用Recyclerview和GridLayoutManager创建了座位预订布局。布局已正确创建。我1排有4个座位,最后一排有5个座位。所以我在GridLayoutManager中使用了5个列。中间立柱空出两个座位之间的空间供步行。现在的问题是,如果我点击第1个座位,将选择第1个座位,但图像变化的第5个座位。并且我还在textview中设置了座位号,所以有时显示