我已将项目的minSdkVersion从19更新为21.这导致5.0/5.1设备上的问题,我无法运行该应用程序.我一直在我的Application类上得到一个ClassNotFoundException.完整日志,应用程序类和gradle文件如下所示.如果我将我的项目还原为minSdkVersion 19,那么应用程序将在4.4+上运行,没有任何问题.
我试过了什么
清洗/重建
更新和降级构建工具版本
跨项目的所有支持库都具有相同的版本号
使我所有的清单类相对而绝对
更新了所有Sdk和构建工具
日志
04-27 14:37:07.152 6278-6278/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.package.testapp, PID: 6278
java.lang.RuntimeException: Unable to instantiate application com.package.TestApplication: java.lang.ClassNotFoundException: Didn't find class "com.package.Application" on path: DexPathList[[zip file "/data/app/com.package.testapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.package.testapp-1/lib/x86_64, /vendor/lib64, /system/lib64]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:563)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.package.TestApplication" on path: DexPathList[[zip file "/data/app/com.package.testapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.package.testapp-1/lib/x86_64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at …Run Code Online (Sandbox Code Playgroud) java android gradle android-5.0-lollipop android-5.1.1-lollipop
对kotlin文件的每次更改都会在构建时导致重新声明错误。解决它的唯一方法是清理项目,然后重新构建。项目中没有其他文件与我正在编辑的文件同名。
我试过了:
当前版本正在使用:
org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21
com.android.tools.build:gradle:3.2.0
Run Code Online (Sandbox Code Playgroud)
导致错误的示例代码。如果我没有构建addedThisLine它,它将作为它的第一个构建。然后,无论如何我编辑文件都会导致以下错误。
package beagle.com
class ErrorFragment {
val hello = "Hello"
init {
var goodbye = "goodbye"
var addedThisLine = "When this line is added I get error"
}
}
Run Code Online (Sandbox Code Playgroud)
错误我得到
这发生在我项目中的每个kotlin文件中,我上面发布的代码是最基本的文件。如您所见,它指向错误的类的名称。
我正在构建一个Java android应用程序,我正在使用realm.io作为我的数据库.我的问题是我有一个RealmList,我的自定义ListView适配器只接受RealmResults.以下是代码和更多详细信息.
我有一个Chat类,它有一个RealmList,RealmList,userId和一个chatId.
public class Chat extends RealmObject{
private RealmList<Friend> participants;
private RealmList<Message> messages;
@PrimaryKey
private String chatId;
private String userId;
...
}
Run Code Online (Sandbox Code Playgroud)
在我尝试显示聊天所有消息的活动中,我可以调用chat.getMessages()来获取此聊天的所有消息作为RealmList但下面的ListView适配器采用RealmResult,因为它扩展了RealmBaseAdapter
public class MessageAdapter extends RealmBaseAdapter<Message> implements ListAdapter {
private String TAG = getClass().getSimpleName();
public MessageAdapter(Context context,
RealmResults<Message> realmResults,
boolean automaticUpdate) {
super(context, realmResults, automaticUpdate);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
{
convertView = inflater.inflate(R.layout.listitem_message, parent, false);
}
Message message = getRealmResults().get(position);
if (message != null)
{
((TextView) …Run Code Online (Sandbox Code Playgroud) 在第一行temp.insert(it);我不断得到错误没有匹配的成员函数来调用insert,这意味着在我的代码中某些时候temp变成了一个不是vector的东西.有人有什么想法吗?
#include <iostream>
#include <vector>
using namespace std;
vector<int> removeDuplicates(vector<int> stuff)
{
vector<int> temp;
vector<int>::iterator it;
for(vector<int>::size_type i = 0; i < stuff.size(); i++){
//iterator to find stuff
it = find(stuff.begin(), stuff.end(), stuff);
//if it not in temp then add it
if (it == temp.end()) {
temp.insert(it); //No matching member function for call to insert
}
}
return temp;
}
int main(int argc, const char * argv[])
{
vector<int> values;
for(int i = 0; i < 5; i++){ …Run Code Online (Sandbox Code Playgroud)