Ich versuche, die genaue DynamoDB Beispiel für die Bücher DB (http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/dynamodb_om.html), aber meine apps Abstürze amAndroid DynamoDB mapper.save Absturz
mapper.save(book)
Schritt (es funktioniert zu folgen, wenn ich diese Zeile auskommentieren).
Bitte überprüfen Sie unten und helfen Sie mir herauszufinden, was das Problem ist. Vielen Dank ! Hier
ist die Fehlermeldung:
07-09 20: 00: 03,652 2458-2458/com.aegisofsoteria.aegisofsoteria D/CognitoCachingCredentialsProvider: Laden Anmeldeinformationen von SharedPreferences 07-09 20: 00: 03,652 2458-2458/com.aegisofsoteria.aegisofsoteria D/CognitoCachingCredentialsProvider: Keine gültigen Anmeldeinformationen in SharedPreferences gefunden 07-09 20: 00: 03.673 2458-2458/com.aegisofsoteria.aegisofsoteria D/AndroidRuntime: Herunterfahren der VM 07-09 20: 00: 03.674 2458-2458/com.aegisofsoteria.aegisofsoteria E/AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: com.aegisofsoteria.aegi sofsoteria, PID: 2458 java.lang.RuntimeException: Kann Aktivität starten ComponentInfo {com.aegisofsoteria.aegisofsoteria/com.aegisofsoteria.aegisofsoteria.SignInActivity}: android.os.NetworkOnMainThreadException bei android.app.ActivityThread.performLaunchActivity (ActivityThread. Java: 2416) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java: 726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) verursacht durch: android.os.NetworkOnMainThreadException bei android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1273) bei java.net.InetAddress.lookupHostByName (InetAddress.java:431) bei java.net.InetAddress.getAllByNameImpl (InetAddress.java:252) bei java.net.InetAddress.getAllByName (I netAddress.java:215) bei com.android.okhttp.internal.Network $ 1.resolveInetAddresses (Network.java:29) bei com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress (RouteSelector.java:188) bei com.android.okhttp.internal.http.RouteSelector.nextProxy (RouteSelector.java:157) bei com.android.okhttp.internal.http.RouteSelector.next (RouteSelector.java:100) bei com.android.okhttp .internal.http.HttpEngine.createNextConnection (HttpEngine.java:357) bei com.android.okhttp.internal.http.HttpEngine.nextConnection (HttpEngine.java:340) bei com.android.okhttp.internal.http.HttpEngine .connect (HttpEngine.java:330) bei com.android.okhttp.internal.http.HttpEngine.sendRequest (HttpEngine.java:248) bei com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.Java: 433) bei com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect (HttpURLConnectionImpl.java:114) bei com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream (HttpURLConnectionImpl.java:245) bei com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream (DelegatingHttpsURLConnection.java:218) bei com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream (HttpsURLConnectionImpl.java) bei com.amazonaws.http.UrlHttpClient. writeContentToConnection (UrlHttpClient.java:128) bei com.amazonaws.http.UrlHttpClient.execute (UrlHttpClient.java:65) bei com.amazonaws.http.AmazonHttpClient.exec uteHelper (AmazonHttpClient.java:356) bei com.amazonaws.http.AmazonHttpClient.execute (AmazonHttpClient.java:199) bei com.amazonaws.services.cognitoidentity.AmazonCognitoIdentityClient.invoke (AmazonCognitoIdentityClient.java:558) bei com. amazonaws.services.cognitoidentity.AmazonCognitoIdentityClient.getId (AmazonCognitoIdentityClient.java:444) bei com.amazonaws.auth.AWSAbstractCognitoIdentityProvider.getIdentityId (AWSAbstractCognitoIdentityProvider.java:172) bei com.amazonaws.auth.CognitoCredentialsProvider.getIdentityId (CognitoCredentialsProvider.java: 340) bei com.amazonaws.auth.CognitoCachingCredentialsProvider.getIdentityId (CognitoCachingCredentialsProvider.java:422) bei com.aegisofsoteria.aegisofsoteria.SignInActivity.BookDBExample (SignInActivity.java:203) bei com.aegisofsoteria.aegisofsoteria.SignInActivity.onStart (SignInActivity.java:124) bei android.app.Instrumentation.callActivityOnStart (Instrumentation.java: 1237) bei android.app.Activity.performStart (Activity.java:6253) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2379) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThrea djava:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread. java: 5417) bei java.lang.reflect.Method.invoke (Native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os .ZygoteInit.main (ZygoteInit.java:616)
ist hier mein Code:
es ist innen
public class SignInActivity extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener, View.OnClickListener {
und der Code ist wie folgt:
private void BookDBExample(){
// Initialize the Amazon Cognito credentials provider
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
my_PollID_here, // Identity Pool ID
Regions.US_EAST_1 // Region
);
Toast.makeText(getApplicationContext(), "my ID" + credentialsProvider.getIdentityId(), Toast.LENGTH_SHORT).show();
AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider);
DynamoDBMapper mapper = new DynamoDBMapper(ddbClient);
Book book = new Book();
book.setTitle("Great Expectations");
book.setAuthor("Charles Dickens");
book.setPrice(1299);
book.setIsbn("1234567890");
book.setHardCover(false);
try {
mapper.save(book);
} catch (AmazonServiceException ase) {
// The conditional check failed.
Toast.makeText(getApplicationContext(), "ASE:" + ase.getMessage(), Toast.LENGTH_LONG).show();
} catch (AmazonClientException ace){
Toast.makeText(getApplicationContext(), "ACE:" + ace.getMessage(), Toast.LENGTH_LONG).show();
}
}
Zwei Dinge, die als Hinweis dienen kann:
auch der Fehler fangen kann es nicht stoppen vor dem Absturz. Warum ?
Was bedeutet "Keine gültigen Anmeldeinformationen in SharedPreferences"? Ich habe die Cognito, IAM, DB genau wie das AWS-Beispiel eingerichtet, und der einzige Unterschied ist, dass ich "Anfügen von Rollenrichtlinien" auf IAM nicht finden kann. Die Optionen sind "Richtlinie anhängen" oder "Rollenrichtlinie erstellen". Also muss ich "Create Role Policy" verwenden, um diesen spezifischen Schritt abzuschließen.
Danke.
Danke. Es klappt. –