我PlacePicker在我的应用程序中使用API,并希望将其地图类型从简单更改为卫星.
PlacePicker是Google提供的API.
这是我使用它的方式:
// Construct an intent for the place picker
try {
PlacePicker.IntentBuilder intentBuilder =
new PlacePicker.IntentBuilder();
Intent intent = intentBuilder.build(this);
// Start the intent by requesting a result,
// identified by a request code.
startActivityForResult(intent, PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, e.getMessage(), Snackbar.LENGTH_SHORT);
snackbar.show();
// ...
} catch (GooglePlayServicesNotAvailableException e) {
Snackbar snackbar = Snackbar
.make(coordinatorLayout, e.getMessage(), Snackbar.LENGTH_SHORT);
snackbar.show();
// ...
}
Run Code Online (Sandbox Code Playgroud)
然后在onActivityResult():
protected void onActivityResult(int requestCode, int …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我已经集成了Crashlystics库,它在应用程序中捕获致命问题并向开发人员报告.
这是如何做:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
}
Run Code Online (Sandbox Code Playgroud)
这是依赖项:
apply plugin: 'io.fabric'
compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true;
}
compile 'com.google.android.gms:play-services:10.2.0'
Run Code Online (Sandbox Code Playgroud)
今天,我收到一份报告,告诉我这个错误:Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference在com.google.android.gms.internal.zzbsp.zzabx (Unknown Source)课堂上.这个错误发生在运行android marshmallow的LGE设备上.
来自Fabric.io的崩溃的完整堆栈跟踪:
#0. Crashed: TubeSockReader-1: 0 0 0x0000000000000000
at com.google.android.gms.internal.zzbsp.zzabx(Unknown Source)
at com.google.android.gms.internal.zzbsm.zzabv(Unknown Source)
at com.google.android.gms.internal.zzbsm.getThreadFactory(Unknown Source)
at com.google.android.gms.internal.zzbsm$2.run(Unknown Source)
at java.lang.Thread.run(Thread.java:818)
--
Fatal Exception: java.lang.NullPointerException: Attempt to …Run Code Online (Sandbox Code Playgroud) android nullpointerexception google-play-services crashlytics twitter-fabric
我正在开发一个我正在使用这个库的应用程序.
在编译项目时,此错误包含TransformException并RuntimeException弹出:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to pre-dex 'C:\Users\hp\.gradle\caches\modules-2\files-2.1\org.brunocvcunha.instagram4j\instagram4j\1.4\e86d0ec82fb3eb4225b983e6dc14db048005bc9b\instagram4j-1.4.jar' to 'C:\Users\hp\Downloads\Hamy\app\build\intermediates\transforms\dex\debug\folders\1000\10\instagram4j-1.4_ea292e8a2c317dbd8ab0226ff9507ee97ac0794b'
Run Code Online (Sandbox Code Playgroud)
这是build.gradle (Module: app):
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.xxx.abc"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
preDexLibraries = false
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude …Run Code Online (Sandbox Code Playgroud) android compiler-errors android-studio android-multidex processexception
我正在AIButton我的应用程序中使用,我有一个AsyncTask在AIButton被点击后执行并接收一些命令并且AsyncTask有时需要太长时间才能执行.
这是我的代码:
final AIConfiguration config = new AIConfiguration("xxx",
AIConfiguration.SupportedLanguages.English,
AIConfiguration.RecognitionEngine.System);
listenButton = (AIButton) findViewById(R.id.micButton);
config.setRecognizerStartSound(getResources().openRawResourceFd(R.raw.test_start));
config.setRecognizerStopSound(getResources().openRawResourceFd(R.raw.test_stop));
config.setRecognizerCancelSound(getResources().openRawResourceFd(R.raw.test_cancel));
listenButton.initialize(config);
listenButton.setResultsListener(this);
Run Code Online (Sandbox Code Playgroud)
这是AsnycTask:
class translate extends AsyncTask<String, Void, String> {
String translatedText = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
loading.setMessage("Loading");
loading.show();
}
@Override
protected String doInBackground(String... params) {
String text = params[0];
String toBeConvertedIn = params[1];
Log.d("TEXT", text);
Log.d("TBCI", toBeConvertedIn);
try {
String encodedText = URLEncoder.encode(text, "UTF-8");
HttpHandler httpHandler = new HttpHandler();
String url = "https://translate.yandex.net/api/v1.5/tr.json/translate?key=xxxxxxx&text=" …Run Code Online (Sandbox Code Playgroud) 我在 android 应用程序中使用新闻 API。
我试图从服务器获取更多的结果(新闻),但它始终只返回20个结果中的文档中提到它已经被设置为默认位置。
这是我的代码:
class DownloadNews extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... args) {
String xml = "";
String urlParameters = "";
xml = Function.excuteGet("https://newsapi.org/v2/top-headlines?country=in&pageSize=100&apiKey=******************", urlParameters);
return xml;
}
@Override
protected void onPostExecute(final String xml) {
if (xml != null) {
if (xml.length() > 10) { // Just checking if not empty
Log.d("xml", xml);
} else {
}
} else {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已将 …
我正在保存用户发布的帖子的坐标。我正在生成一个推送 ID,然后使用它来保存帖子数据和 geofire 坐标。
我只想显示那些在 0.5 公里半径范围内的帖子。我正在使用GeoFire库来做同样的事情,但我无法完成任务。
以下是我生成推送 ID 的方法:
itemID = databaseReferenceRequests.push().getKey();
以下是我如何使用它来保存 geofire 坐标以及帖子数据:
geoFire.setLocation(itemID,
new GeoLocation(Double.parseDouble(currentLat.getText().toString()),
Double.parseDouble(currentLng.getText().toString())));
databaseReferenceRequests.child(itemID).setValue(hRequest);
Run Code Online (Sandbox Code Playgroud)
它的保存方式如下:
问题是,当我尝试仅获取距离我的范围 0.5 公里以内的帖子时,这种情况并没有发生,并且所有帖子(无论是近还是远)都会被检索。
这是我检索它的方法:
public void retrieveHelpRequests() {
geoQuery = geoFire.queryAtLocation(new GeoLocation(currentLatDouble, currentLngDouble), 0.5);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
databaseReference.child("help-requests").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
imageUID = newRequest.get("imageUIDh");
homelessDescription = newRequest.get("homelessDescription");
currentLat = newRequest.get("currentLat");
currentLng = newRequest.get("currentLng");
postedBy = newRequest.get("postedBy"); …Run Code Online (Sandbox Code Playgroud) 我从中获取一些数据FirebaseDatabase然后将它们放入一个array然后尝试List在一个自定义中显示它们AlertDialog.
这是代码:
query = mDatabase.child("child").child(anotherChild).child("yetAnotherChild");
uProfile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
query.orderByChild("someChild").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot != null) {
Map<String, String> newD = (Map<String, String>) dataSnapshot.getValue();
ArrayList<String> l = new ArrayList<String>();
l.add(newD.get("lol").substring(30));
String names[] = l.toArray(new String[0]);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(Activity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_list, null);
alertDialog.setView(convertView);
alertDialog.setTitle("title");
ListView lv = (ListView) convertView.findViewById(R.id.lv);
ArrayAdapter<String> adapter = …Run Code Online (Sandbox Code Playgroud) android android-arrayadapter android-alertdialog firebase firebase-realtime-database
我正在尝试使用软件包名称打开某些应用程序,为此我使用了以下代码:
public void openAppHavingPackageName(String packageName, String appName) {
try {
Intent intent = getBaseContext().getPackageManager().getLaunchIntentForPackage(packageName);
startActivity(intent);
} catch (ActivityNotFoundException e) {
Log.e(TAG, e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试打开手机中安装的应用程序时,它工作正常,但是当我尝试打开手机中没有的应用程序时,应用程序崩溃并出现以下错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference
在线上
startActivity(intent);
如您所见,我在try/catch那里有一个块,那么为什么没有捕获异常,而是运行代码导致崩溃?
android try-catch nullpointerexception android-package-managers activitynotfoundexception
我将我的更新android-studio到最新的稳定版本,即“Android Studio 2.3”以及gradle到2.3.0.
现在,当我尝试生成我的应用发布版本的签名 apk 时,这个“额外”的东西(签名版本:) 显示在最后一步:
我点击了“签名帮助”,这个页面被打开了。
我按照文档对我的 build.gradle 文件进行了更改,如下所示:
apply plugin: 'com.android.application'
//Put Fabric plugin after Android plugin
apply plugin: 'io.fabric'
android {
signingConfigs {
config {
keyAlias 'xxxxxx'
keyPassword 'xxxxxx'
storeFile file('/Users/xxxxx')
storePassword 'xxxxxx'
v2SigningEnabled false
}
}
compileSdkVersion 25
buildToolsVersion "25.0.0"
lintOptions {
abortOnError false
}
defaultConfig {
applicationId "com.xxxxx.xxx"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release …Run Code Online (Sandbox Code Playgroud) android android-studio android-7.0-nougat android-7.1-nougat android-studio-2.3
我正在尝试从 FirebaseStorage 下载一些图像。
虽然我通过谷歌验证用户,但我仍然收到此错误:
E/StorageException: StorageException has occurred. User does not have permission to access this object. Code: -13021 HttpResult: 403
Run Code Online (Sandbox Code Playgroud)
尝试下载图像时。
以下是规则:
service firebase.storage {
match /b/appname-e3a12.appspot.com/o {
match /{allPaths=**} {
allow read, write;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有人对此有答案吗?
android firebase firebase-security firebase-realtime-database
我正在开发一个应用程序,我正在从Firebase数据库中检索一些数据。
问题是每次我保存一些东西时,它都会被检索并添加到RecyclerView.
我想要的是我希望将新添加的数据添加到 recyclerview 的顶部而不是底部。
我不知道如何做我想做的事。
请告诉我。
android firebase android-recyclerview firebase-realtime-database
我正在手动创建Firebase动态/深层链接,如下所示:
Uri BASE_URI = Uri.parse("http://example.com/");
String packageName = getBaseContext().getPackageName();
Uri APP_URI = BASE_URI.buildUpon().path(requestID.getText().toString().trim()+"%3DrequestID="+requestID.getText().toString().trim()+"%3Dextra1="+extra1.getText().toString().trim()+"%3Dextra2="+extra2.getText().toString().trim()).build();
String encodedUri = URLEncoder.encode(APP_URI.toString(), "UTF-8");
Uri deepLink = Uri.parse("https://appcode.app.goo.gl/?link="+encodedUri+"&apn="+packageName+"&amv="+16+"&ad="+0);
Run Code Online (Sandbox Code Playgroud)
然后我与另一个用户分享它,他正在接收这个链接:http://example.com/-KcP1YHgGsg3tVYybX8b%253DrequestID%3D-KcP1YHgGsg3tVYybX8b%253Dextra1%3Dtext1%253Dextra2%3D3%253Dtext2.
然后使用以下代码我试图从这里获取查询参数(链接中的额外参数):
boolean autoLaunchDeepLink = false;
AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, this, autoLaunchDeepLink)
.setResultCallback(
new ResultCallback<AppInviteInvitationResult>() {
@Override
public void onResult(@NonNull AppInviteInvitationResult result) {
if (result.getStatus().isSuccess()) {
// Extract deep link from Intent
Intent intent = result.getInvitationIntent();
final String deepLink = AppInviteReferral.getDeepLink(intent);
Log.d("deepLinkMainActivity", deepLink);
Uri uri = Uri.parse(deepLink);
String requestId = uri.getQueryParameter("requestID");
Log.d("requestId123", requestId);
} else {
Log.d("getInvitation", "getInvitation: no …Run Code Online (Sandbox Code Playgroud) 我正在使用此代码来分析用户正在使用的sign_up方法:
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.SIGN_UP_METHOD, "sign_up_method");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SIGN_UP, bundle);
Run Code Online (Sandbox Code Playgroud)
只要用户注册,上面给出的代码就应该将事件保存在Firebase控制台中.
问题是事件正在创建,但value列下没有任何内容,即sign_up_method没有显示.
这是来自控制台的快照(事件名称:sign_up在那里,但代替sign_up_method,有一个-):
这里出了什么问题?
请告诉我.
android ×13
firebase ×6
api-ai ×1
bundle ×1
crashlytics ×1
deep-linking ×1
geofire ×1
google-maps ×1
java ×1
try-catch ×1
uri ×1