小编Ham*_*sir的帖子

如何从Google Places API将PlacePicker的地图类型从简单更改为卫星?

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)

java android google-maps google-places-api android-studio

6
推荐指数
1
解决办法
484
查看次数

在"com.google.android.gms.internal.zzbsp.zzabx"类的崩溃解决方案报告中获取"null对象引用"上的"java.lang.String.toLowerCase()"

我有一个应用程序,我已经集成了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 referencecom.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

6
推荐指数
2
解决办法
3910
查看次数

在build.gradle中编译具有useLibrary'org.apache.http.legacy'的项目时出现'app:transformClassesWithDexForDebug'错误

我正在开发一个我正在使用这个的应用程序.

在编译项目时,此错误包含TransformExceptionRuntimeException弹出:

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

6
推荐指数
1
解决办法
850
查看次数

API.AI:如何在点击AIButton时停止AsyncTask?

我正在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 android-asynctask onclicklistener api-ai

6
推荐指数
1
解决办法
382
查看次数

即使在指定 pageSize=100 后,NewsApi 也返回 totalResults=20

我在 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)

我已将 …

android android-asynctask

6
推荐指数
1
解决办法
4892
查看次数

如何检索距离我的范围 0.5 公里以内的帖子?

我正在保存用户发布的帖子的坐标。我正在生成一个推送 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)

android firebase geofire firebase-realtime-database

5
推荐指数
1
解决办法
4524
查看次数

从FirebaseDatabase获取的数据将显示在3个单独的AlertDialog中,而不是一个

我从中获取一些数据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

5
推荐指数
1
解决办法
751
查看次数

即使存在 try/catch 块,应用程序也会因空对象引用上的“boolean android.content.Intent.migrateExtraStreamToClipData()”崩溃

我正在尝试使用软件包名称打开某些应用程序,为此我使用了以下代码:

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

5
推荐指数
1
解决办法
3718
查看次数

即使将“v2SigningEnabled”设置为 false,也无法“仅使用传统方案”签署 apk

我将我的更新android-studio到最新的稳定版本,即“Android Studio 2.3”以及gradle2.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

3
推荐指数
1
解决办法
2844
查看次数

获取'用户无权访问此对象。代码:-13021 HttpResult:403' 错误。请看详情

我正在尝试从 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

2
推荐指数
1
解决办法
1万
查看次数

如何将新添加的数据从 firebase 添加到 recyclerview 的顶部而不是底部?请看详情

我正在开发一个应用程序,我正在从Firebase数据库中检索一些数据。

问题是每次我保存一些东西时,它都会被检索并添加到RecyclerView.

我想要的是我希望将新添加的数据添加到 recyclerview 的顶部而不是底部。

我不知道如何做我想做的事。

请告诉我。

android firebase android-recyclerview firebase-realtime-database

2
推荐指数
1
解决办法
2308
查看次数

无法查询存储在Firebase动态/深层链接中的参数

我正在手动创建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)

android uri deep-linking firebase firebase-dynamic-links

2
推荐指数
1
解决办法
2024
查看次数

'FirebaseAnalytics.Param.SIGN_UP_METHOD'无法在控制台中将'value'与'Event name`一起保存

我正在使用此代码来分析用户正在使用的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 bundle firebase firebase-analytics

0
推荐指数
1
解决办法
640
查看次数