我是Android新手,并尝试合并parse.com sdk。我怀疑我的android清单在解析活动周围不正确。它在初学者应用程序中工作正常,我试图将其转移到我自己的应用程序。其余文件应该没问题。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jorc.fleetmanagement">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/legal_info"/>
<activity
android:name=".ImageList"
android:label="@string/image_info"/>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".StarterApplication"
android:label="@string/app_name" >
<meta-data
android:name="com.parse.APPLICATION_ID"
android:value="@string/parse_app_id" />
<meta-data
android:name="com.parse.CLIENT_KEY"
android:value="@string/parse_client_key" />
</activity>
</application>
</manifest>
StarterApplication.java也在下面。
package com.jorc.fleetmanagement;
import android.app.Application;
import com.parse.Parse;
import com.parse.ParseACL;
import com.parse.ParseUser;
public class StarterApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
// Add your initialization code here
Parse.initialize(this,"my id", "my key");
ParseUser.enableAutomaticUser();
ParseACL defaultACL = new ParseACL();
// Optionally enable public read access.
// defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);
}
}
我的app build.gradle也在下面。当我从jcenter改为mavern时,不确定这个mavern和jcenter是什么意思(这是正确的事情)
apply plugin: 'com.android.application'
apply plugin: 'com.parse'
buildscript {
repositories {
mavenCentral()
maven { url 'https://maven.parse.com/repo' }
}
dependencies {
classpath 'com.parse.tools:gradle:1.+'
}
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.jorc.fleetmanagement"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.parse.bolts:bolts-tasks:1.3.0'
compile 'com.parse:parse-android:1.11.0'
}
错误信息在下面是相当确定的,因为解析没有连接并获得任何结果。
12-05 12:07:33.106 1858-1858 / com.jorc.fleetmanagement D / score:错误:java.lang.NullPointerException:尝试调用虚方法&#39; java.io.File com.parse。 ParsePlugins.getParseDir()&#39;在null对象引用上 12-05 12:07:33.159 1858-1876 / com.jorc.fleetmanagement W / EGL_emulation:eglSurfaceAttrib未实施 12-05 12:07:33.159 1858-1876 / com.jorc.fleetmanagement W / OpenGLRenderer:无法在表面0xb4319c20上设置EGL_SWAP_BEHAVIOR,错误= EGL_SUCCESS
答案 0 :(得分:1)
您是否在清单文件中引用StarterApplication
。
如果您没有引用它,那么只需创建这样的应用程序标记
而不是将应用程序类引用为活动
<activity
android:name=".StarterApplication"
android:label="@string/app_name" >
像这样编辑你的apllication标签
<application
android:name=".StarterApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
只需将android:name=".StarterApplication"
添加到您的应用标记
然后我认为一切都应该正常工作..