0

私は埋め込みGoogleプレイスオートコンプリートのフラグメントを使用しています。ここに私のコードです。検索フラグメントに触れるとアプリがクラッシュし、エラーがスローされます。 XMLでPlacesオートコンプリート "com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable"

私のJavaクラスは

public class User extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener, OnMapReadyCallback { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_user); 

    PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) 
      getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); 

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
     @Override 
     public void onPlaceSelected(Place place) { 
      // TODO: Get info about the selected place. 
      Log.i("Google Map", "Place: " + place.getName()); 
     } 

     @Override 
     public void onError(Status status) { 
      // TODO: Handle the error. 
      Log.i("Google Map", "An error occurred: " + status); 
     } 
    }); 

Fragmenet

<fragment 
     android:id="@+id/place_autocomplete_fragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment" /> 

logcatでエラーが発生しました

ここ
06-27 23:12:39.247 21759-21759/af.com.urban I/art: Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.location.places.AutocompleteFilter>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/safeparcel/AbstractSafeParcelable; 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.zzboi() ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.zza(com.google.android.gms.location.places.ui.PlaceAutocompleteFragment) ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment$1.onClick(android.view.View) ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at boolean android.view.View.performClick() (View.java:6205) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at boolean android.widget.TextView.performClick() (TextView.java:11103) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.view.View$PerformClick.run() (View.java:23653) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Looper.loop() (Looper.java:154) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6682) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1520) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1410) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable" on path: DexPathList[[zip file "/data/app/af.com.urban-2/base.apk"],nativeLibraryDirectories=[/data/app/af.com.urban-2/lib/arm64, /system/lib64, /vendor/lib64]] 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.zzboi() ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.zza(com.google.android.gms.location.places.ui.PlaceAutocompleteFragment) ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment$1.onClick(android.view.View) ((null):-1) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at boolean android.view.View.performClick() (View.java:6205) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at boolean android.widget.TextView.performClick() (TextView.java:11103) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.view.View$PerformClick.run() (View.java:23653) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.os.Looper.loop() (Looper.java:154) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6682) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1520) 
06-27 23:12:39.247 21759-21759/af.com.urban I/art:  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1410) 

すべての私は、ライブラリの異なるバージョンをcomplieしようとしたか、私のアンドロイドminifestファイルがあります結果はありません

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="af.com.urban"> 

<permission 
    android:name="af.com.urban.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="af.com.urban.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<application 
    android:allowBackup="true" 
    android:fullBackupContent="@xml/backup_descriptor" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:theme="@style/Theme.AppCompat.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Login" /> 
    <activity 
     android:name=".User" 
     android:label="@string/title_activity_user" 
     android:theme="@style/AppTheme.NoActionBar" /> 
    <activity android:name=".Signup" /> 
    <activity android:name=".TripsActivity" /> 
    <!-- 
     The API key for Google Maps-based APIs is defined as a string resource. 
     (See the file "res/values/google_maps_api.xml"). 
     Note that the API key is linked to the encryption key used to sign the APK. 
     You need a different API key for each encryption key, including the release key that is used to 
     sign the APK for publishing. 
     You can define the keys for the debug and release targets in src/debug/ and src/release/. 
    --> 
    <meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="@string/google_maps_key" /> 
    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version"/> 

    <activity 
     android:name=".MapsActivity" 
     android:label="@string/title_activity_maps"/> 
</application> 

私はあなたのsnipetコードを追加しますが、奇妙なエラーをスローします。アンドロイドは非常に怒った。

06-28 00:02:41.316 2509-2509/af.com.urban E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: af.com.urban, PID: 2509 
                  java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/location/places/AutocompleteFilter; 
                   at com.google.android.gms.location.places.AutocompleteFilter$Builder.build(Unknown Source) 
                   at af.com.urban.User.onCreate(User.java:91) 
                   at android.app.Activity.performCreate(Activity.java:6942) 
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880) 
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
                   at android.app.ActivityThread.-wrap14(ActivityThread.java) 
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                   at android.os.Looper.loop(Looper.java:154) 
                   at android.app.ActivityThread.main(ActivityThread.java:6682) 
                   at java.lang.reflect.Method.invoke(Native Method) 
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
                  Caused by: java.lang.ClassNotFoundException: com.google.android.gms.location.places.AutocompleteFilter 
                   at java.lang.VMClassLoader.findLoadedClass(Native Method) 
                   at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) 
                   at java.lang.ClassLoader.loadClass(ClassLoader.java:362) 
                   at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
                   at com.google.android.gms.location.places.AutocompleteFilter$Builder.build(Unknown Source)  
                   at af.com.urban.User.onCreate(User.java:91)  
                   at android.app.Activity.performCreate(Activity.java:6942)  
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)  
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)  
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)  
                   at android.app.ActivityThread.-wrap14(ActivityThread.java)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)  
                   at android.os.Handler.dispatchMessage(Handler.java:102)  
                   at android.os.Looper.loop(Looper.java:154)  
                   at android.app.ActivityThread.main(ActivityThread.java:6682)  
                   at java.lang.reflect.Method.invoke(Native Method)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)  
                  Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/safeparcel/AbstractSafeParcelable; 
                   at com.google.android.gms.location.places.AutocompleteFilter$Builder.build(Unknown Source)  
                   at af.com.urban.User.onCreate(User.java:91)  
                   at android.app.Activity.performCreate(Activity.java:6942)  
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)  
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)  
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)  
                   at android.app.ActivityThread.-wrap14(ActivityThread.java)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)  
                   at android.os.Handler.dispatchMessage(Handler.java:102)  
                   at android.os.Looper.loop(Looper.java:154)  
                   at android.app.ActivityThread.main(ActivityThread.java:6682)  
                   at java.lang.reflect.Method.invoke(Native Method)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)  
                  Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable" on path: DexPathList[[zip file "/data/app/af.com.urban-1/base.apk"],nativeLibraryDirectories=[/data/app/af.com.urban-1/lib/arm64, /system/lib64, /vendor/lib64]] 
                   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
                   at java.lang.ClassLoader.loadClass(ClassLoader.java:380) 
                   at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
                   at com.google.android.gms.location.places.AutocompleteFilter$Builder.build(Unknown Source)  
                   at af.com.urban.User.onCreate(User.java:91)  
                   at android.app.Activity.performCreate(Activity.java:6942)  
                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)  
                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)  
                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)  
                   at android.app.ActivityThread.-wrap14(ActivityThread.java)  
                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)  
                   at android.os.Handler.dispatchMessage(Handler.java:102)  
                   at android.os.Looper.loop(Looper.java:154)  
                   at android.app.ActivityThread.main(ActivityThread.java:6682)  
                   at java.lang.reflect.Method.invoke(Native Method)  
                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)  
                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)  
+0

クライアントLIBSがあなたのAPKにリンクされていないように見えます。 – AndrewR

+0

考えられる原因:さまざまなバージョンの異なるプレイサービスを使用する(https://stackoverflow.com/a/41491470/2994)https://developers.google.com/android/guides/setupのビルド設定を再確認してください。 – AndrewR

答えて

0
/**Use the below code snipet**/ 

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) 
     getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); 


AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
    .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS) 
    .build(); 
autocompleteFragment.setFilter(typeFilter); 

autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
@Override 
public void onPlaceSelected(Place place) { 
    // TODO: Get info about the selected place. 
    Log.i(TAG, "Place: " + place.getName());//get place details here 
} 

@Override 
public void onError(Status status) { 
    // TODO: Handle the error. 
    Log.i(TAG, "An error occurred: " + status); 
} 
}); 
+0

あなたのコードのエラーを確認してください –

関連する問題